Задать вопрос
@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 для другой команды, а потом попытаться снова использовать текущую.
  • Вопрос задан
  • 519 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы