Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Обновление поля запросом


Автор: kulikoff 29.11.2006, 16:24
Собственно сабж... В таблице БД есть поле типа number, которое содержит число, скажем 56384. Мне необходимо параметризированным запросом обновить поле так, чтоб оно стало со значением NULL, СУБД Oracle. Что написать в параметре р3 запроса?
Код

          ADOQuery9.Close;
          ADOQuery9.SQL.Clear;
          ADOQuery9.SQL.Text:='update REN.bankvup b set b.roz=:p1, b.prin=:p2, b.subpackid=:p3, b.kr1=:p4 where b.keybank=:p5';
          ADOQuery9.Parameters.ParseSQL(ADOQuery9.SQL.Text, true);
          ADOQuery9.Parameters.ParamByName('p1').Value:='текст';
          ADOQuery9.Parameters.ParamByName('p2').Value:='текст';
          ADOQuery9.Parameters.ParamByName('p3').Value:=??????????????????????;
          ADOQuery9.Parameters.ParamByName('p4').Value:=0;
          ADOQuery9.Parameters.ParamByName('p5').Value:=ADOQuery7.FieldByName('keybank').AsInteger;
          ADOQuery9.Prepared;
          ADOQuery9.ExecSQL;

Автор: Rodman 29.11.2006, 16:31
Код

          ADOQuery9.Close;
          ADOQuery9.SQL.Clear;
          ADOQuery9.SQL.Text:='update REN.bankvup b set b.roz=:p1, b.prin=:p2, b.subpackid=:p3, b.kr1=:p4 where b.keybank=:p5';
          ADOQuery9.Parameters.ParseSQL(ADOQuery9.SQL.Text, true);
          ADOQuery9.Parameters.ParamByName('p1').Value:='текст';
          ADOQuery9.Parameters.ParamByName('p2').Value:='текст';
          ADOQuery9.Parameters.ParamByName('p3').Value:=0;
          ADOQuery9.Parameters.ParamByName('p4').Value:=0;
          ADOQuery9.Parameters.ParamByName('p5').Value:=ADOQuery7.FieldByName('keybank').AsInteger;
          ADOQuery9.Prepared;
          ADOQuery9.ExecSQL;


а так что не пойдет?

Автор: superVad 29.11.2006, 16:37
nil попробуй

Автор: kulikoff 29.11.2006, 16:40
Rodman, 0 нельзя, надо именно NULL

superVad, выдает ошибку
Код

Incompatible types: 'Variant' and 'Pointer'

на строку:
Код

 ADOQuery9.Parameters.ParamByName('p3').Value:=nil;

Автор: Vas 29.11.2006, 16:53
Вот так попробуй
Код

ADOQuery9.Parameters.ParamByName('p3').AsString:='';


Добавлено @ 16:56 
или пиши в самом запросе 
Код

update REN.bankvup b set b.roz=:p1, b.prin=:p2, b.subpackid=null, b.kr1=:p4 where b.keybank=:p5

Автор: kulikoff 29.11.2006, 17:03
СпасибоЁ Прям в запросе написал - всё работает! Как-то не подумал сразу в запросе писать.... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)