![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметры в запросе не работают. [D6, access]
Леха © (2004-10-06 09:55:00)Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('update Kods set Gorod=:Gorod where Gorod=:Gorods');
Form1.ADOQuery1.Parameters.Items[0].Value := Form2.Edit1.Text;
Form1.ADOQuery1.Parameters.Items[3].Value := Form2.Edit4.Text;
Form1.ADOQuery1.ExecSQL;
Kods - таблица
Gorod - поле
Gorod - параметр 0, Gorods - параметр 3.
Пишет вот такую ошибку. Что не так?
with message 'List index out of bonus (3)' Process stoped
Без Gorods, если значение тупо запивать работает.
Леха (2004-10-06 10:30:00) [1]Понял. Спасибо всем.
Огромное спасибо - Johnmen.
Johnmen (2004-10-06 10:28:00) [2]Параметры в коллекции параметров появляются только когда происходит определение свойства SQL.
SQL.Clear соответственно приводит к чистке коллекции.
К параметрам желательновсегда обращаться по имени.
Леха (2004-10-06 10:23:00) [3]Нет. Просто остальные еще не используются.
DenK_vrtz (2004-10-06 10:19:00) [4]>Ведь точно он в списке 4. Начинается нумер. с 0. Значит он 3.
а из этого
('update Kods set Gorod= :Gorodwhere Gorod= :Gorods');
видно, что параметров только ДВА! :)
Леха (2004-10-06 10:12:00) [5]Спасибо всем. Особенно Johnmen. Код помог. Если не трудно, а как обратно можно узнать номер параметра, если знаешь его имя.
Ведь точно он в списке 4. Начинается нумер. с 0. Значит он 3.
Я так думал...
Nikolay M. (2004-10-06 10:08:00) [6]Не туда смотришь. Или не тогда.
Johnmen (2004-10-06 10:08:00) [7]
Form1.ADOQuery1.Parameters.ParamByName('Gorod').Value:=...
...
Леха (2004-10-06 10:01:00) [8]В Объект Инспекторе смотрю TParametrs[3]
Внизу значение Gorods
Nikolay M. (2004-10-06 09:56:00) [9]
> Gorods - параметр 3.
Откуда такая уверенность?
> Что не так?
очевидно:
> 'List index out of bonus (3)'