J'ai une requête commeC, unixODBC, oracle et date interroge
select x from tableName where startDate <= now;
Quand j'interroger la base sans les champs de date, tout fonctionne comme prévu. Dès que je commence à utiliser des colonnes de date ou d'horodatage dans la base de données Oracle, mes requêtes ne retournent rien ou une erreur.
Ce que je fais:
snprintf(sql, sizeof(sql), "SELECT roomNo, userPass, adminPass, adminFlags, userFlags, bookId, is_locked, running_on_server FROM booking WHERE roomNo = '?' AND startTime <= { ts '?' } AND endTime >= { ts '?' } for update;");
stmt = ast_odbc_prepare_and_execute(obj, generic_prepare, &gps);
la? seront remplacées par des valeurs, avec la commande suivante:
SQLBindParameter(stmt, i + 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(gps->argv[i]), 0, gps->argv[i], 0, NULL);
quand j'exécute la requête que je reçois une erreur TS est un identifiant valide [ce fut une recommandation par un autre conseil, prise de msdn - ce qui peut provoquer cette erreur ]
mais même si je le supprime et n'envoie qu'une chaîne à la base de données, j'obtiendrai un résultat vide. J'ai également essayé de lier les paramètres comme SQL_TIMESTAMP et SQL_DATE, mais cela n'a pas aidé non plus.
J'espère que quelqu'un peut m'aider.
merci d'avance. Chris