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


Автор: former 4.12.2006, 20:49
Никогда раньше не пользовался запросами, а тут понадобилось Blob поле очистить. Попытался сделать следующее для нескольких полей, новыдаёт ошибку. 'Error creating table handle - Native error - 20001'. Что не так?

Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to 3 do  
  begin
     Query1.Close;
     with Query1 do
     begin
       SQL.Clear;
       SQL.Add:='UPDATE table1 SET Pic = Null WHERE Name = :val';
        with Params do
        begin
          ParamByName('val').Value := 'Запись 2';
        end;
      Open;
    end;
  end;
end;

Автор: Golden Hands 4.12.2006, 23:31
Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin

  Query1.Active:=False;
  with Query1 do
  begin
    Query1.Params.ParamByName('val').Value := 'Запись 2';
    SQL.Clear;
    SQL.Add('UPDATE table1 SET Pic = Null WHERE Name = :val');
  end;
  Query1.ExecSQL; 

end;

Автор: former 5.12.2006, 01:39
Golden Hands, попытался сделать, как ты написал, но появляется ошибка: 'Table1: Field 'val' not found'


Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to 3 do
  begin
    Query1.Active:=False;
    with ABSQuery1 do
    begin
      Query1.Params.ParamByName('val').Value := 'Çàïèñü '+InttoStr(i);
      SQL.Clear;
      SQL.Add('UPDATE table1 SET Pic = Null WHERE Name = :val');
    end;
  Query1.ExecSQL;
  end;
end;


Может я что-то не так делаю?

Автор: Vas 5.12.2006, 08:46
Может снчала текст запроса надо написать, а потом параметрам значения присваивать?
Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to 3 do
  begin
    Query1.Active:=False;
    with ABSQuery1 do
    begin
      SQL.Clear;
      SQL.Add('UPDATE table1 SET Pic = Null WHERE Name = :val');
      Params.ParamByName('val').Value := 'Çàïèñü '+InttoStr(i);
    end;
  Query1.ExecSQL;
  end;
end;

Автор: former 5.12.2006, 20:25
Всем спасибо. Всё работает.

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