listview deki kayıtları databaseye kayıt ve güncellemede işin işinden çıkamadım, sürekli kayıt ekleniyor...
Yapmak istedikleri...
1. listviewde kayıt varsa databasede ki kayıt güncellenecek
2. listviewde kayıt var databasede kayıt yok ise ekleyecek...
3. Listviewdeki kayıt silinmiş ise databasedende silinecek..
Kod: Tümünü seç
procedure TForm1.KaydetClick(Sender: TObject);
begin
with ListView1 do
begin
for i := Items.Count - 1 downto 0 do
begin
with MEKANLAR do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM MEKAN Where ID=:ID');
ParamByName('ID').Value := Items[i].SubItems[5];
Prepared := True;
Open;
if Not IsEmpty then
begin
Close;
SQL.Clear;
SQL.Add('Update MEKAN Set SIRANO=:SR, ADI=:AD, ADRES=:AS, TELLEFON=:NO');
SQL.Add('Where ID =' + Items[i].SubItems[5]);
ParamByName('SR').AsString := ListView1.Items[i].SubItems[0];
ParamByName('AD').AsString := ListView1.Items[i].SubItems[1];
ParamByName('AS').AsString := ListView1.Items[i].SubItems[2];
ParamByName('NO').AsString := ListView1.Items[i].SubItems[3];
ExecSQL;
end
else
begin
Close;
SQL.Clear;
SQL.Add('Insert Into MEKAN (SIRANO, ADI, ADRES, TELEFON)');
SQL.Add(' Values (:SR, :AD, :AS, :NO)');
ParamByName('SR').AsString := ListView1.Items[i].SubItems[0];
ParamByName('AD').AsString := ListView1.Items[i].SubItems[1];
ParamByName('AS').AsString := ListView1.Items[i].SubItems[2];
ParamByName('NO').AsString := ListView1.Items[i].SubItems[3];
ExecSQL;
end;
end;
end;
end;
end;