procedure Tform1.yapilacakBTNClick(Sender: TObject);
var
i:integer;
state:boolean;
aboneno:string;
begin
for i:=1 to sorguGRD.Rowcount-1 do
begin
if sorguGRD.GetCheckBoxState(0,i,state) then
begin
if state then
begin
With aktarQRY do
begin
close;
sql.clear;
sql.add(' INSERT INTO islemler (islem_turu,makbuz_no,tarih,'+
' abone_no,musteri_adi,geneltoplam )');
sql.add(' VALUES (:xislem_turu,:xmakbuz_no,:xtarih,'+
' :xabone_no,:xmusteri_adi,:xgeneltoplam )');
Params.ParamByName('xislem_turu').value := 'FATURA';
Params.ParamByName('xmakbuz_no').value := main.makbuznoED.text;
Params.ParamByName('xtarih').value := main.stabar.panels[0].text;
Params.ParamByName('xabone_no').asstring := tesisatno1.text;
Params.ParamByName('xmusteri_adi').asstring := aboneED.text;
Params.ParamByName('xgeneltoplam').value := faturatoplam;
execsql;
end;
end;
end;
end;
aboneno:= tesisatno1.text;
With musteriaraQRY do
begin
close;
sql.clear;
sql.add('select abone_adi, abone_no from musteri_kayit where abone_no=''aboneno''');
Active:=true;
Open;
begin
if musteriaraQRY.recordcount=0 then begin
With musterikaydetQRY do
begin
close;
sql.clear;
sql.add(' INSERT INTO musteri_kayit (xislem_turu,abone_adi,abone_no)');
sql.add(' VALUES (xislem_turu,:xabone_adi,:xabone_no)');
Params.ParamByName('xislem_turu').value := 'FATURA';
Params.ParamByName('xabone_adi').value := aboneED.text;
Params.ParamByName('xabone_no').value := aboneno;
execsql;
end;
end
else if musteriaraQRY.recordcount>0 then begin
With musterikaydetQRY do
begin
close;
sql.clear;
sql.add(' UPDATE musteri_kayit Set abone_adi='''+aboneED.text+''' Where abone_no='''+aboneno+''' ');
execsql;
end;
end;
end;
end;
end;
Bu kodlardaki hata nerededir ? Müşteri yoksa ekle varsa güncelle kısmım çalışmıyor. Daha doğrusu kayıt varsa bile hep yeni kayıt ekliyor güncelleme yapmıyor
En son bkantur tarafından 03 Şub 2015 10:47 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
procedure TForm8.GuncelleClick(Sender: TObject);
begin
try
with Form3.Database do
begin
Close;
SQL.Clear;
SQL.Add('Select * From kullanici Where ADI=:BRSA');
ParamByName('BRSA').AsString := ComboBox1.Text;
Prepared := True;
Open;
if Not IsEmpty then
begin
SQL.Clear;
SQL.Add('Update kullanici Set ADI=:BRSA');
SQL.Add('Where kullanici =''' + ComboBox1.Text + '''');
ParamByName('BRSA').AsString := ComboBox1.Text;
ExecSQL;
Application.MessageBox
(PChar(ComboBox1.Text + ' Güncelleme İşlemi Başarıyla Tamamlandı!'),
'Mesaj', 0);
end
else
begin
Close;
SQL.Clear;
SQL.Add('Insert Into kullanici (ADI)');
SQL.Add(' Values (:BRSA)');
ParamByName('BRSA').AsString := ComboBox1.Text;
ExecSQL;
Application.MessageBox
(PChar(ComboBox1.Text + ' Kayıt İşlemi Başarıyla Tamamlandı!'),
'Mesaj', 0);
end;
end;
except
Application.MessageBox('İşlem Sırasında Hata Oluştu!', 'Hata',
MB_Ok or MB_ICONQUESTION);
end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevap için teşekkür ederim. Benim aşağıda kullandığım kodlar normalde çalışıyor ama yukarıdaki kodlar ile kullandığımda hep yeni kayıt ekliyor güncelleme yapmıyor.
With musteriaraQRY do
begin
close;
sql.clear;
sql.add('select abone_adi, abone_no from musteri_kayit where abone_no=''aboneno''');
Active:=true;
Open;
begin
if musteriaraQRY.recordcount=0 then begin
With musterikaydetQRY do
begin
close;
sql.clear;
sql.add(' INSERT INTO musteri_kayit (xislem_turu,abone_adi,abone_no)');
sql.add(' VALUES (xislem_turu,:xabone_adi,:xabone_no)');
Params.ParamByName('xislem_turu').value := 'FATURA';
Params.ParamByName('xabone_adi').value := aboneED.text;
Params.ParamByName('xabone_no').value := aboneno;
execsql;
end;
end
else if musteriaraQRY.recordcount>0 then begin
With musterikaydetQRY do
begin
close;
sql.clear;
sql.add(' UPDATE musteri_kayit Set abone_adi='''+aboneED.text+''' Where abone_no='''+aboneno+''' ');
execsql;
end;
end;
end;
end;
Birde yanlış anlamaz iseniz ufak eleştiri yapacağım, çok sayıda kodlamada gereksiz aynı şeyler yazılmış örnek (With musterikaydetQRY do) gibi ben sizin için biraz düzenleme yaptım gerisini siz kendinize göre uyarlayın daha sağlıklı olur...
begin
With LinkDatabase do
begin
Close;
SQL.Clear;
SQL.Add('Select * From musteri_kayit Where abone_adi=:ad');
ParamByName('ad').AsString := aboneED.Text;
Prepared := True;
Open;
if Not IsEmpty then //kayıt varsa güncelle
begin
Close;
SQL.Clear;
SQL.Add(' UPDATE musteri_kayit Set abone_adi=''' + aboneED.Text +
''' Where abone_no=''' + aboneno + ''' ');
ExecSQL;
end
else
begin
Close;
SQL.Clear;
SQL.Add(' INSERT INTO musteri_kayit (xislem_turu,abone_adi,abone_no)');
SQL.Add(' VALUES (xislem_turu,:xabone_adi,:xabone_no)');
Params.ParamByName('xislem_turu').Value := 'FATURA';
Params.ParamByName('xabone_adi').Value := aboneED.Text;
Params.ParamByName('xabone_no').Value := aboneno;
ExecSQL;
end;
end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Estağfurullah neden yanlış anlayayım bilgi konusunda her zaman eleştirilere açığım tavsiyenizi değerlendireceğim bu arada sizin sayenizde yukarıdaki kodun hatasınıda buldum çok teşekkür ederim.