bonjour,
je suis nouveau en programation et delphi

j'ai un bouton qui permet de mettre à jour la table 'lieu2' à partir de la table 'lieu1'
Les tables 'lieu2'et 'lieu1' sont les mêmes( même champs, même enrégistrement ....)
une partie de ce programme est:


procedure TForm1.Button1Click(Sender: TObject);
begin
qrlieu1.Open;
while not (qrlieu1.eof) do
begin
qrInsertlieu2.ParamByName('li_id').AsInteger := qrlieu1.fieldbyname('li_id').AsInteger;
qrInsertlieu2.ParamByName('vi_id').AsInteger := qrlieu1.fieldbyname('vi_id').AsInteger;
qrInsertlieu2.ParamByName('li_adr1').Asstring := qrlieu1.fieldbyname('li_adr1').Asstring;
qrInsertlieu2.ExecSQL;
qrcommit.ExecSQL;
qrlieu1.Next;
end;
end;

Explication : qrlieu1 est un Query: ( select * from lieu1)

qrInsertlieu2 est le bouton dont le query est :

insert into lieu2 (li_id,vi_id,li_adr1)
values(:li_id, :vi_id, :li_adr1).

Ce programme marche bien seulement si la table lieu2 est vide.
Si la table Lieu2 contient déjà des enregistrements , le programme plante: " violation de clé primaire"

Donc je cherche à mettre un test dans ce programme: Il y aura insertion seulement des
nouveaux enrégistrements ou modification des enrégistrements dans la table Lieu1.

Comment faire ????

Merci pour votre aide .