bu kod neden işe yaramıyor?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

bu kod neden işe yaramıyor?

Mesaj gönderen Gold_Lady »

Kod: Tümünü seç

IBDataset1.close;
IBDataset1.Deletesql.clear;
IBDataset1.Deletesql.Add('DELETE FROM NEW_TABLE');
IBDataset1.Open;
IBTransaction1.commitretaining;
Tüm kayıtları silmek istiyorum, bu kodu buton click olayına yazdım ama butona basınca tık yok. Hiç bir hareket olmuyor. neden acaba?
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Kod: Tümünü seç

IBDataset1.close;
IBDataset1.Deletesql.clear;
IBDataset1.Deletesql.Add('DELETE FROM NEW_TABLE ');
IBDataset1.Open;
ibdataset1.delete; 
IBTransaction1.commitretaining;
butona tıkladıktan sonra bi kereye mahsus ibdataset1.delete; yap
böylece delete kodunu tetiklemiş olursun.
kolay gelsin
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba bir sonuç döndürmeyen deyimlerde open yerine execsql kullanmalısınız.

Ayrıca silmek için deletesql yerine selectsql kısmına yazın.

Kod: Tümünü seç

IBDataset1.close;
IBDataset1.SELECTSQL.clear;
IBDataset1.SELECTSQL.Add('DELETE FROM KURUM');
IBDataset1.ExecSQL;
IBTransaction1.commitretaining;


IBDataset1.close;
IBDataset1.SELECTSQL.clear;
IBDataset1.SELECTSQL.Add('SELECT * FROM KURUM');
IBDataset1.OPEN;

Hatta bu işler için bir tane ibsql bileşeni daha uygun olur. Çünkü hafızada daha az yer kaplar.



Kolay gelsin.
En son ofenX tarafından 25 Nis 2006 03:35 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

@nitrokonat
Teşekkür ederim, çalıştı..

@ofenX
Sizin dediğinizden anladığım;

Kod: Tümünü seç

IBDataset1.close;
IBDataset1.Deletesql.clear;
IBDataset1.Deletesql.Add('DELETE FROM NEW_TABLE ');
IBDataset1.execsql;
ibdataset1.delete;
IBTransaction1.commitretaining;
kod bu şekilde olacak, doğru mu anlamışım...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
mesajınızdan önce kendi mesajımı düzelttiğim için örneği yukarı yazdım.
Sorunuzun cevabını yukarı almış oldum.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yanlış kullanıyorsunuz. ofenx'in önerisi olan ayrı bir ibsql ile yaptırmak daha iyi.

Sizin DeleteSQL'e yazdığınız Delete method'u çağırılınca çalıştırılır. Bu pek iyi bir yöntem değil.
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Delphi de çok yeniyim. IBSQL konusunu pek bilmiyorum. Aslına bakarsanız Delphi' yide öyle aman aman bilmiyorum. Öğrenmeye çalışıyorum. Birazcık daha açık ve örnek kod yazarsanız daha iyi olacak benim için...
Teşekkür ederim.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
ibdataset ile ilgili örneği yukarıda yazmıştım. Ibsql de aynı sayılır.
ibdatabase bağlantılarını kurduktan sonra :

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
ibsql1.sql.clear;
ibsql1.SQL.Add('DELETE FROM KURUM');
IBSQL1.ExecQuery;
end;
gibi kullanabilirsiniz. Tabi transaction commit işini de yapacaksınız.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Teşekkür ederim.
Peki tek kayıt silmek içinde IBSQL kullanılabilir mi? Birde kayıt yapmak güncellemek içinde IBSQL kullanılabilir mi?
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Tek kayıt silmek,güncellemek için ibdataset bileşeni daha uygun olur.
Çoklu kayıt eklemek için ibsql i kullanabilirsiniz.
Mesela bir veritabanını ilk oluşturduğunuzda iller tablonuza illeri doldurmak için ibsql bileşenini kullanabilirsiniz.

Genelde sorgulama için ibquery,
düzeltme,ekleme gibi şeyler için ibdataset
sonuç döndürmeyenler için ibsql kullanılır.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Çok özür dilerim, zamanınızı alıyorum,
Sonuç döndürmeyen ne demek?
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba

Kod: Tümünü seç

select * from kurum 
yazdığınızda size kurum table ının içinde kayıtlar varsa ekrana gelir. Bu sonuç dönen bir komuttur.

Ama

Kod: Tümünü seç

delete from kurum where lr=25
yazdığınızda ekranınıza lr değeri 25 olan kayıt gelmiyor. Bu da sonuç döndürmeyen bir deyimdir.

Umarım anlatabildim.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Tamam anladım, çok teşekkür ederim. :)
Cevapla