Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2021, 16:05   #1
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию adoquery parameter not found

Добрый день, подскажите пожалуйста, пытаюсь сделать простой запрос, но выдает ошибку
"adoquery: parameter "D1" not found"

Код:
Form3.ADOQuery1.Close;
Form3.ADOQuery1.SQL.Clear;
mytext:='SELECT * FROM history WHERE data = :D1';
Form3.ADOquery1.parameters.ParamByName('D1').Value:=dateTimePicker1.Date;
 ADOQuery1.SQL.Text:=mytext;
 Form3.ADOQuery1.Open;
MixanMM вне форума Ответить с цитированием
Старый 05.07.2021, 16:19   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Проверьте значение ParamCheck и parameters.ParseSQL сделать перед заданием параметров.
ForenLi вне форума Ответить с цитированием
Старый 05.07.2021, 16:27   #3
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Проверьте значение ParamCheck и parameters.ParseSQL сделать перед заданием параметров.
ParamCheck стоит True при запуске, но еще добавил перед чтением параметров,
Код:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;

mytext:='SELECT * FROM history WHERE data = :D1';
  ADOQuery1.ParamCheck := true;
  ADOquery1.parameters.ParamByName('D1').Value:=dateTimePicker1.Date;

 ADOQuery1.SQL.Text:=mytext;
 Form3.ADOQuery1.Open;1
и можете подсказать, как задается parameters.ParseSQL
MixanMM вне форума Ответить с цитированием
Старый 05.07.2021, 16:31   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Код:
ParseSQL(mytext, true);
Стоп. Вы SQL делаете в отдельной строке и хотите, чтобы ADOQuery о ней догадался?
ForenLi вне форума Ответить с цитированием
Старый 05.07.2021, 16:37   #5
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Код:
ParseSQL(mytext, true);
Стоп. Вы SQL делаете в отдельной строке и хотите, чтобы ADOQuery о ней догадался?
Вот это затупил, спасибо заработало вроде, а не подскажете, почему если делаю такой запрос
Код:
mytext:='SELECT * FROM history WHERE data BETWEEN :D1 AND :D2';
Он вчерашнюю дату не берет, а только сегодняшнюю, хотя на "dateTimePicker1" выставлена вчерашняя дата?
MixanMM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access - EDataBaseError parameter not found - задоблбался iskurt БД в Delphi 1 26.10.2020 19:42
проблемы с sql запросом, Adoquery: Field 'id' not found. Ernest027 БД в Delphi 8 04.07.2016 16:17
Неправильно определен объект Parameter. danka123 БД в Delphi 14 29.09.2013 15:46
PR - Parameter runner Alex Cones Софт 3 14.12.2010 10:10
При удалении ADOStoredProc утверждает что parameter '@iddebt' not found Илья Сергеевич Помощь студентам 0 16.01.2010 04:38