@alex123321123

Проблема с TADOCommand в Delphi?

При первом запуске текущего кода всё в порядке, при повторном использовании возникает ошибка - нет параметра G1.

ADOCommand1.CommandText := 'delete from [Test] where GUID = :G1';
ADOCommand1.ParamCheck := False;
ADOCommand1.Parameters.ParamByName('G1').Value := guid;
ADOCommand1.Execute();

В чём может быть проблема?

Upd(!): точнее проблема происходит, если использовать ADOCommand1 для другой команды, а потом попытаться снова использовать текущую.
  • Вопрос задан
  • 496 просмотров
Решения вопроса 1
@akileev
Java / Scala developer
В ADOCommand остались параметры от предыдущей команды, а от новой нет.

Если ADOCommand1 создается динамически, то надо сделать:

ADOCommand1.CommandText := 'delete from [Test] where GUID = :G1';
ADOCommand1.Parameters.Clear;
ADOCommand1.Parameters.ParseSQL(ADOCommand1.CommandText, True);
ADOCommand1.Parameters.ParamByName('G1').Value := guid;
ADOCommand1.Execute();


Если ADOCommand1 лежит на форме, то для каждой команды надо класть на форму отдельный TADOCommand.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы