У меня запрос типа
select x from tableName where startDate <= now;
Когда я запрашиваю базу данных без полей даты, все работает, как и ожидалось.Как только я начинаю использовать столбцы даты или метки времени в базе данных Oracle, мои запросы ничего не возвращают или не выдают ошибку.
Что я делаю:
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);
the?будут заменены значениями с помощью следующей команды:
SQLBindParameter(stmt, i + 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(gps->argv[i]), 0, gps->argv[i], 0, NULL);
, когда я выполняю запрос, я получаю ошибку, что TS является недопустимым идентификатором [это была рекомендация другой доски, взятая из msdn - что можетэта ошибка]
но даже если я удалю ее и отправлю только строку в базу данных, я получу пустой результат обратно.Я также пытался связать параметры как SQL_TIMESTAMP и SQL_DATE, но это тоже не помогло.
Надеюсь, кто-нибудь мне поможет.
Заранее спасибо.Chris