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

Ваш аккаунт

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

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

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

С++Builder6 + SQL

25K
28 апреля 2009 года
TheMustafa
33 / / 08.09.2008
Здравствуйте!

Скажите пожалуйста в чем разница?
1) curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom)");
curADOQuery->SQL->Add(" and (EvDate <= :dateto) order by EvDate");
2) curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom) and (EvDate <= :dateto) order by EvDate");

Первый вариант не работает, второй работает.
В чем дело?
315
28 апреля 2009 года
Nick_M
399 / / 29.05.2003
Цитата: TheMustafa
Здравствуйте!

Скажите пожалуйста в чем разница?
1) curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom)");
curADOQuery->SQL->Add(" and (EvDate <= :dateto) order by EvDate");
2) curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom) and (EvDate <= :dateto) order by EvDate");

Первый вариант не работает, второй работает.
В чем дело?



Разницы нет никакой. Значит ошибка не в этих строчках, а где-то еще

25K
28 апреля 2009 года
TheMustafa
33 / / 08.09.2008
Перед теми строками идут эти:
curADOQuery->Parameters->CreateParameter("datefrom",ftString,pdInput,0,NULL);
curADOQuery->Parameters->ParamByName("datefrom")->Value = value1; curADOQuery->Parameters->CreateParameter("dateto",ftString,pdInput,0,NULL);
curADOQuery->Parameters->ParamByName("dateto")->Value = value2;

Здесь есть ошибка?
315
28 апреля 2009 года
Nick_M
399 / / 29.05.2003
Цитата: TheMustafa
Перед теми строками идут эти:
curADOQuery->Parameters->CreateParameter("datefrom",ftString,pdInput,0,NULL);
curADOQuery->Parameters->ParamByName("datefrom")->Value = value1; curADOQuery->Parameters->CreateParameter("dateto",ftString,pdInput,0,NULL);
curADOQuery->Parameters->ParamByName("dateto")->Value = value2;

Здесь есть ошибка?



Как-то странно видеть создание параметров и присвоение значений до заполнения строки запроса. У меня всегда работает такой порядок:

 
Код:
curADOQuery->SQL->Clear();
curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom)");
curADOQuery->SQL->Add("and (EvDate <= :dateto) order by EvDate");
curADOQuery->Parameters->ParamByName("datefrom")->Value = value1;
curADOQuery->Parameters->ParamByName("dateto")->Value = value2;
curADOQuery->Open();


Попробуйте этот вариант. И проверьте чтобы curADOQuery->ParamCheck = true
25K
29 апреля 2009 года
TheMustafa
33 / / 08.09.2008
Цитата: Nick_M
Как-то странно видеть создание параметров и присвоение значений до заполнения строки запроса. У меня всегда работает такой порядок:
 
Код:
curADOQuery->SQL->Clear();
curADOQuery->SQL->Add("select * from currentTable where (EvDate >= :datefrom)");
curADOQuery->SQL->Add("and (EvDate <= :dateto) order by EvDate");
curADOQuery->Parameters->ParamByName("datefrom")->Value = value1;
curADOQuery->Parameters->ParamByName("dateto")->Value = value2;
curADOQuery->Open();


Попробуйте этот вариант. И проверьте чтобы curADOQuery->ParamCheck = true



Попробовал. Теперь выдает следующее: "Неправильно определен объект Parameter. Предоставлены несовместимые или неполные сведения."

315
29 апреля 2009 года
Nick_M
399 / / 29.05.2003
А какая база данных?
25K
29 апреля 2009 года
TheMustafa
33 / / 08.09.2008
Цитата: Nick_M
А какая база данных?



Access2003

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