pFIBDataSet ile veri tabanından veri silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen habikus »

IBDataSet1.Close;
IBDataSet1.SELECTSQL.Clear;
IBDataSet1.SELECTSQL.Add('delete from madyaz');
IBDataSet1.ExecSql;

Merhaba arkadaşlar, yukarıdaki kodlar ile ibdataset kullanarak veritabanındaki dosyadan verileri silebiliyordum, fakat şu anda IBDataSet yerine pFIBDataSet kullanınca hata veriyor. Fibplus bileşenleri ile veritabanı tablosundan verileri silmek için başka yöntem mi var?. Yardımcı olursanız sevinirim.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen mkysoft »

hata mesajını paylaşmadığınız için yardımcı olmak çok zor.
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen habikus »

ExecSql komutunu kabul etmiyor. Verdiği hata mesajı "E2003 Undeclared identifier: 'ExecSql'"
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen adnansirca »

pFibDataset in ExecSQL özelliği yok ama pFIBQuery ExecQuery özelliği var.
Dataset kullanmayı tercih ediyorsanız FibPlus Dataset in DeleteSQL özellğini kullanmayı deneyin.
Not : AutoCommit değerini True yapmayı unutmayın.

Kod: Tümünü seç

 With pFIBDataSet1 begin
 Close;
 DELETESQL.Clear;
 DELETESQL.Add('delete from madyaz');
 Open;
 Active := True;
 Delete;
end;
gibi...
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen habikus »

Teşekkürler adnansirca ,
Verdiğiniz kodlar işimi gördü. Allah razı olsun. Ama ilk olarak gösterdiğiniz yoldan başaramadım.
Yani,
pFIBQuery1.close;
pFIBQuery1.sql.clear;
pFIBQuery1.sql.Text:= ('DELETE FROM madyaz');
pFIBQuery1.ExecQuery;

bu kodlar ise verileri silmedi.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen adnansirca »

pFibQuery1->Options->qoAutoCommit değerini true yapın.
FibPlus bileşenlerinde delete,update,insert işlemleri için AutoCommit özelliğini true yapmak gerekir.
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen habikus »

pFibQuery1->Options->qoAutoCommit değerini true yapınca oldu fakat bu durumda diğer pfdataset'ler ile işlem yapmak istediğimde bu sefer datasetler closed mesajı alıyorum.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: pFIBDataSet ile veri tabanından veri silme

Mesaj gönderen adnansirca »

habikus yazdı:pFibQuery1->Options->qoAutoCommit değerini true yapınca oldu fakat bu durumda diğer pfdataset'ler ile işlem yapmak istediğimde bu sefer datasetler closed mesajı alıyorum.
Bunun sebebi Transaction ayarlarını yapmamanızdır.
Çözümü ise şu şekildedir;

Database bağlantınız için gerekli bileşenler
1 Adet TpFibDatabase
2 Adet TpFibTransaction(Adları ReadTR,WriteTR olsun mesela)
Kısacası FibDatabase için iki adet Transaction bağlamış olmanız gerekir.
Bunlardan biri Read diğeri Write için.

FibDatabase Ayarları
FibDatabase->DefaultTransaction->ReadTR
FibDatabase->DefaultUpdateTransaction->WriteTR

Bu ayarlardan sonra
pFibQuery1->Options->qoStartTransaction->True
pFibQuery1->Options->qoAutoCommit->True
pFibQuery1->Transaction->WriteTR

şeklinde ayarlarınızı yapın.
Cevapla