Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Формирование Sql-запроса с заданием интервала дат

407
05 июля 2005 года
shupik
160 / / 15.09.2004
Нужно забрать данные из таблицы FoxPro. Приспособил для этого метод:
TRY
{
base.Open("Calls");
CRecordset recset( &base );

sSql = "SELECT date,time,number,duration FROM Calls";
sSql+=" WHERE date BETWEEN '2005-05-31' AND '2005-06-01' ";
sSql+=" GROUP BY date,time,number,duration";
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);
while( !recset.IsEOF())
{
recset.GetFieldValue("date",date);
recset.GetFieldValue("time",time);
recset.GetFieldValue("number",number); recset.GetFieldValue("duration",duration);

recset.MoveNext();
}
recset.Close();
base.Close();
}
CATCH(CDBException, e)
{

CDialog errorDatabase;
errorDatabase.MessageBox("Ошибка базы данных:"+e->m_strError,"Критическая ошибка",MB_OK|MB_ICONERROR);
}
END_CATCH;
При выполнении такого запроса выскакивает сообщение "Ошибка базы данных: Operator/operand type mismatch". Подозреваю, что поле типа "дата" нужно как-то иначе обрабатывать. Подскажите, как?
10
05 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by shupik
Подозреваю, что поле типа "дата" нужно как-то иначе обрабатывать.


Вот интересно, почему программисты с завидным упорством продолжают пытаться что-то "обрабатывать", и совершенно упускают параметры. А ведь основное назначение параметров - не париться с типами.

488
05 июля 2005 года
Mоngооsе
465 / / 01.04.2005
Кроме параметров, можно
...
WHERE date BETWEEN CTOD('2005-05-31') AND CTOD('2005-06-01')";
407
05 июля 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by Freeman
Вот интересно, почему программисты с завидным упорством продолжают пытаться что-то "обрабатывать", и совершенно упускают параметры. А ведь основное назначение параметров - не париться с типами.



И каким образом их сюда ввернуть?

407
05 июля 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by Mоngооsе
Кроме параметров, можно
...
WHERE date BETWEEN CTOD('2005-05-31') AND CTOD('2005-06-01')";



Что-то не работает такой вариант... Не возвращает ни одного значения почему-то.

488
05 июля 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by shupik
Что-то не работает такой вариант... Не возвращает ни одного значения почему-то.


WHERE date BETWEEN CTOD('05-31-2005') AND CTOD('06-01-2005')";

407
05 июля 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by Mоngооsе
WHERE date BETWEEN CTOD('05-31-2005') AND CTOD('06-01-2005')";



Всем спасибо, это я затупил. Дату не в том формате набрал. :D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог