Fórum Locate para INSERT/UPDATE utilizando TQuery #363457

01/09/2008

0

Bom dia!

Tenho o seguinte problema: caso haja algum registro na tabela (de acordo com um filtro), devo fazer um UPDATE; caso contrário, um INSERT. No caso, estou utilizando o componente TQuery com as instruções INSERT e UPDATE direto no SQL, para tornar mais eficiente.

No momento, estou executando da seguinte forma, sendo qLocate e qEdit TQuery´s (de forma bem resumida):

----
qLocate.Close;
qLocate.SQL.Clear;
qLocate.SQL.Add(´Select * From Tabela Where Campo=:Campo´);
qLocate.ParamByName(´Campo´).AsInteger := 0;
qLocate.Open;

if qLocate.RecordCount > 0 then begin
qEdit.Close;
qEdit.SQL.Text := ´UPDATE Tabela SET Campo1=:Campo1 WHERE Campo=:Campo´;
qEdit.ParamByName(´Campo´).AsInteger := 0;
end
else begin
qEdit.Close;
qEdit.SQL.Text := ´INSERT INTO Tabela (Campo1) VALUES (:Campo1)´;
qEdit.ParamByName(´Campo1´).AsInteger := 0;
end;
----

Isso funciona, mas é necessário abrir uma consulta somente para realizar o Locate. Como seria sem o qLocate?!

Desde já agradeço!


Deborazb

Deborazb

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar