![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Приветствую
При запуске из Delphi (F9) ошибка: "Project Project1.exe raised exception class EOleException with message 'Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом'" Но все работает При запуске ехе-ка ошибки, соответственно, нет Код: Код:
ADOQuery_Eh1.Close;
ADOQuery_Eh1.SQL.Text := 'SELECT * FROM proto.stv WHERE (date_montaz > :dat)';
// ADOQuery_Eh1.Parameters.ParseSQL(ADOQuery_Eh1.sql.text, true); так ли нужна эта строка? и без нее все работает и с ней...
ADOQuery_Eh1.Parameters.ParamByName('dat').Value:=yesterday;
// ADOQuery_Eh1.Parameters.ParamByName('dat').DataType:= ftDate; тоже не влияет
ADOQuery_Eh1.Active:=true;Перепробовал много разных вариантов, но всегда эта ошибка Причем ошибка появляется только 1 раз при первом открытии ADOQuery, потом работает без нареканий даже при смене значения даты Что это может быть? БД - mysql, для поля date_montaz - тип DATE, при создании параметра вручную в ADOQuery.Parameters все так же Последний раз редактировалось Mrak, 05.12.2013 в 16:22. |
|
#2
|
||||
|
||||
|
На другом форуме поспрашивал - проблему так и не нашли(( Возможно какие-то глюки на моем софте
Но вот обнаружил закономерность: ошибка выскакивает всегда и везде, но кроме случая, когда запрос прописан в ADOQuery в designTime, так же ошибка появляется только при первом формировании и вызове запроса и параметра Что за?? Такое чувство, что происходит какое-то кеширование текста запроса перед его выполнением и когда я пытаюсь сформировать его программно - вылазит ошибка(( Правильно ли будет забить на ошибку? Ведь запрос срабатывает так как надо... |
|
#3
|
||||
|
||||
|
Правильней будет -- пытаться установить тип параметра до присвоения ему первого значения.
|
|
#4
|
||||
|
||||
|
Цитата:
вот, типа лог) Код:
ADOQuery_Par.Close;
// ADOQuery_Par.Parameters.CreateParameter('dat', ftDate ,pdUnknown, 0, yesterday);
// ADOQuery_Par.SQL.Clear;
// ADOQuery_Par.SQL.add('SELECT * FROM proto.stv WHERE (id > :dat);');
ADOQuery_Par.SQL.Text:='SELECT * FROM proto.stv WHERE (id < :dat);';
//ADOQuery_Eh1.Parameters.ParseSQL(ADOQuery_Eh1.sql.text, true);
//ADOQuery_Eh1.Parameters[0].name:='dat';
//ADOQuery_Eh1.Parameters[0].DataType:=ftdate;
//ADOQuery_Eh1.Parameters[0].Value:=yesterday;
// ADOQuery_Eh1.Parameters.ParamByName('dat').DataType:=ftInteger;
ADOQuery_Par.Parameters.ParamByName('dat').Value:=edit1.Text;// yesterday;
//ADOQuery_Eh1.Parameters.Paramvalues['dat']:='33';//strtodate(edit1.Text);// yesterday;
// ADOQuery_Eh1.Parameters.ParamByName('dat').DataType:= ftDateTime;
ADOQuery_Par.Open;в любых вариациях - неявная ошибка |