Консультация № 64585
28.11.2006, 13:16
0.00 руб.
0 4 1
Здравствуйте Уважаемые Мастера!!!

У меня такой вопрос перечитал в пяти книгах по программированию все о работе с параметрами для компонентов Query и составление запросов с применение параметров. Но единой картины по работе так и не сложилось. В приложение привожу код примера по вставке записи в таблицу, значение берется из Edit1. Но появляется сообщение "Поле house.num_home не может содержать значение Null так как свойство Required имеет значение true. Введите значение в поле "

Прошу Вас не могли бы Вы систематизировать мои знания, и что я делаю неправильно. Как правильно должен выглядеть приведенный код.

Спасибо большое всем откликнувшимся

Приложение:
with ADOQuery1 dobeginParameters.ParamByName(‘num_home‘).Value:=edit1.text;close;sql.Clear;Sql.Add(‘insert into house ([num_home], [address], [raion]) values (:num_home,1,1)‘);end;//ADOQuery1.ExecSQL;ADOQuery1.Open;

Обсуждение

Неизвестный
28.11.2006, 13:41
общий
это ответ
Здравствуйте, Tresda!

Попробуйте вот так:
while ADOQuery1 do
SQL.Clear;
SQL.add(‘insert into house (num_house, address, raion) values (:num_home, :address, :raion)‘);
Parameters.ParamValues[‘num_home‘]:=edit1.text;
Parameters.ParamValues[‘address‘]:=edit2.text;
Parameters.ParamValues[‘raion‘]:=edit1.text;
open;
end;
Неизвестный
28.11.2006, 13:54
общий
Спасибо большое! Однако значения попадают в таблицу, но появляется исключение "Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции" и "ADOQuery1: Command Text does not return a result set"
давно
Мастер-Эксперт
425
4118
28.11.2006, 14:16
общий
Потому что метод <b>Open</b> применяется только в том случае, если Вы используете "SELECT" в запросе. Во всех остальных случаях (DELETE, INSERT,...) нужно применять ExecSQL.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
29.11.2006, 09:07
общий
to sir henry, PaVeL_Ekt.Спасибо большое за помощь!!!
Форма ответа