![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметры в ADO: q2: Parameter 'i' not found [D6, dBase, FoxPro]
Progr_Neud © (2006-08-04 10:21:00)Пишу следующую конструкцию:
q2.Close;
q2.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Таблицы Visual FoxPro;UID=;SourceDB='+PathBD+';SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Delet ed=Yes;"';
q2.SQL.Clear;
q2.SQL.Add('insert into starye (id,kolvo,nazvan,opisan) values( :i , :c , :n , :m )');
while not q1.Eof do begin
q2.Close;
q2.Parameters.ParamByName('i').Value:=q1.FieldByName('id').AsInteger;
q2.Parameters.ParamByName('c').Value:=q1.FieldByName('kolvo').AsFloat;
q2.Parameters.ParamByName('n').Value:=q1.FieldByName('nazvan').AsString;
q2.Parameters.ParamByName('m').Value:=q1.FieldByName('opisan').AsString;
q2.ExecSQL;
q1.Next;
end;
Строка подключения следующая:
Когда пытается запузырить значение в параметр по имени "i" - ругается на то что он не найден....
Пробовал и с пробелами перед : и без пробелов.
Как бороться?
Причем этот компонент в других местах программы нормально работает с параметрами......
Johnmen (2006-08-04 10:59:00) [1]Потому, что в других местах этой программы этот компонент не претерпевал дизайнерских изменений...
Progr_Neud (2006-08-04 10:49:00) [2]Ура!!!
Добавил строчку перед циклом
q2.Parameters.ParseSQL(q2.SQL.Text,true);
и все заработало....
Всем спасибо.
Вопрос в догонку: а почему в других местах этой программы этот компонент работал без такой строчки???
sniknik (2006-08-04 10:34:00) [3]1 q2.Close; в цикле лишнее.
2 на вставку, и вообще команды не возвращаемые данные, лучше выполнять в ADOCommand. (возвращающие в ADODataSet, а ADOQuery/Table/StoredProc на помойку...)
3 не использование ADOConnection (прописывание строки в командном компаненте, как у тебя) частый источник глюков, часто вообще непонятных... используй его даже если думаеш что он тебе не нужен (!!!!).
4 ParamCheck возможно у тебя отключен, поэтому параметры совсем не созданы. ругается на первый используемый.
ORMADA (2006-08-04 10:29:00) [4]параметры перепарсить нада Paramerers.ParseSQL вызать