adouery delete sorgusu oluşturmada hata

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

S.a

bir kaydet butonum var birde düzenle butonum var.
kaydet butonuna basınca geliş numarası ile fiyat tabloya kayıt ediliyor.Güncelle butonuna bastığında daha önceden kayıt edilmiş kaydı silicek tekrar kaydet butonuna basınca yine fiyatı tabloya kayıt edicek.Ama sorun yaşadım.Kodlar şöyle ;

kaydet butonu
adotoplamfiyat.insert;
adotoplamfiyattoplam_muayene_fiyati.asstring:=edit3.text; (mesela 10)
adotoplamfiyatgelis_no.asstring:=dbedit4.text; (mesela 5)
adotoplam.post;

güncelle butonu

burda geliş numarasi 5 olan kayıtı sildirmem lazım.

sonra tekrar kaydet butonuna bastığımda edit3.ün içindeki yeni fiyatı tabloya yine o geliş numarası ile kayıt ettiricem.

Bu konuda yardımcı olabilirmisiniz bana?
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen thelvaci »

Güncelleme işlemi için neden silme/ekleme silsilesini kullanmak istiyorsunuz anlamadım.!
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

thelvaci yazdı:Güncelleme işlemi için neden silme/ekleme silsilesini kullanmak istiyorsunuz anlamadım.!
çünkü kaydet e bastığımda aynı geliş numarasıyla birden fazla fiyat eklenebiliyor onun için eskisini silip yenisini kayıt edicem yada update de edebilirim ama bunu koda nasıl dökücem onu bilmiyorum..
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen thelvaci »

Sizin için doğru yanıt update etmek olmalıdır özel bir nedeniniz yok ise Delete/Insert için. Update'i veritabanı tarafında bir stored procedure vasıtası ile yapabileceğiniz gibi Delphi tarafında bir query bileşeni ile de yapabilirsiniz. Yada daha basiti; TDataSet türevine Edit komutunu verip ardından güncellenecek alanlarınıza değerlerinizi yazıp Post metoduna da çağrıda bulunabilirsiniz tabii..
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

thelvaci yazdı:Sizin için doğru yanıt update etmek olmalıdır özel bir nedeniniz yok ise Delete/Insert için. Update'i veritabanı tarafında bir stored procedure vasıtası ile yapabileceğiniz gibi Delphi tarafında bir query bileşeni ile de yapabilirsiniz. Yada daha basiti; TDataSet türevine Edit komutunu verip ardından güncellenecek alanlarınıza değerlerinizi yazıp Post metoduna da çağrıda bulunabilirsiniz tabii..
bunu koda dökemiyorum işte bilmediğimden.

yardımcı olurmusunuz kod kısmında.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen thelvaci »

Kod: Tümünü seç

adotoplamfiyat.Edit;
adotoplamfiyattoplam_muayene_fiyati.asstring:= istediğiniz bir değer;
adotoplamfiyatgelis_no.asstring:=istediğiniz bir değer;
adotoplam.post;
Yapacağınız iş bu kadar..
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

thelvaci yazdı:

Kod: Tümünü seç

adotoplamfiyat.Edit;
adotoplamfiyattoplam_muayene_fiyati.asstring:= istediğiniz bir değer;
adotoplamfiyatgelis_no.asstring:=istediğiniz bir değer;
adotoplam.post;
Yapacağınız iş bu kadar..
böyle sadece toplam fiyatı kayıt etmiş oluyorum.bana şu lazım

gelis numarasi istediğim değer olan kayıtın toplam fiyat bilgisini güncelle.bunu yapmaya çalışıyorum.yani bir şart lazım şart da geliş numarası benim istediğim kayıt olacak ve bu kayıtın toplam fiyatını değiştiricem.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen thelvaci »

Update Tablom
Set
Alan1 = Deger1,
Alan2 = Deger2
Where Alan3 = Kriter1 and Alan4 = Kriter2

gibi bir SQL yazarak çözemiyor musunuz ?
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

thelvaci yazdı:Update Tablom
Set
Alan1 = Deger1,
Alan2 = Deger2
Where Alan3 = Kriter1 and Alan4 = Kriter2

gibi bir SQL yazarak çözemiyor musunuz ?

ADOtoplamfiyat.Close;
ADOtoplamfiyat.SQL.Text:='update toplam_muayene_fiyati set toplam_muayene_fiyati like '''+ edit3.Text +''' where gelis_no=:gelis';
ADOtoplamfiyat.Parameters.ParamByName('gelis').Value:=dbedit4.Text;
ADOtoplamfiyat.Open;

böyle yaptım olmadı

update deyimin de söz dizimi hatası :(
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen conari »

Kod: Tümünü seç

set toplam_muayene_fiyati like '''+ edit3.Text +''' 
like şeklinde bir deyim olmaz

Kod: Tümünü seç

set toplam_muayene_fiyati='''+ edit3.Text +''' 
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

conari yazdı:

Kod: Tümünü seç

set toplam_muayene_fiyati like '''+ edit3.Text +''' 
like şeklinde bir deyim olmaz

Kod: Tümünü seç

set toplam_muayene_fiyati='''+ edit3.Text +''' 
şimdi ben şöyle bir şey kullandım güncelle butonuna bastiğimda islem='tahsilatı_guncelle'; diye bir kod çalışıyor
kaydet butonuna basınca da if islem='tahsilatı_guncelle' then
begin
ADOtoplamfiyat.Close;
ADOtoplamfiyat.SQL.Text:='update toplam_muayene_fiyati set toplam_muayene_fiyati='''+ edit3.Text +''' where gelis_no=:gelis';
ADOtoplamfiyat.Parameters.ParamByName('gelis').Value:=dbedit4.Text;
ADOtoplamfiyat.Open;
end;

bunlar çalışıyor.yani eğer bir düzeltilme yapılacaksa tablodaki o kayıtı güncelle.

şöyle bir hata aldım ama "geçerli sağlayıcı tek yürütmeden,birden çok kayıt dizisi döndürmeyi desteklemiyor."
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen thelvaci »

ADOToplamFiyat.Open yerine ADOToplamFiyat.ExecSQL kullanın.
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: adouery delete sorgusu oluşturmada hata

Mesaj gönderen destiny24 »

thelvaci yazdı:ADOToplamFiyat.Open yerine ADOToplamFiyat.ExecSQL kullanın.
çok teşekkür ederim sonunda bu güncelleme işini de yapmış oldum.

bilmek isteyenler için kodları veriyorum.

Kaydet Butonu İçin

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
if islem1='tahsilati_duzenle' then
begin
ADOtoplamfiyat.Close;
ADOtoplamfiyat.SQL.Text:='update toplam_muayene_fiyati set toplam_muayene_fiyati='''+ edit3.Text +''' where gelis_no='''+dbedit4.Text+''' ';
ADOtoplamfiyat.execsql;
end else

begin
ADOtoplamfiyat.Insert;
ADOtoplamfiyattoplam_muayene_fiyati.AsString:=edit3.Text;
ADOtoplamfiyatgelis_no.AsString:=dbedit4.Text;
ADOtoplamfiyat.post;
end;
edit3.Enabled:=false;
bitbtn2.Enabled:=false;

end;


Güncelle Butonu için

islem1:='tahsilati_duzenle';
Cevapla