Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Gold_Lady
Üye
Mesajlar: 142 Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:
Mesaj
gönderen Gold_Lady » 25 Nis 2006 03:13
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?
nitro
Üye
Mesajlar: 1112 Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:
Mesaj
gönderen nitro » 25 Nis 2006 03:17
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
ofenX
Üye
Mesajlar: 397 Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:
Mesaj
gönderen ofenX » 25 Nis 2006 03:23
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.
Gold_Lady
Üye
Mesajlar: 142 Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:
Mesaj
gönderen Gold_Lady » 25 Nis 2006 03:35
@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...
ofenX
Üye
Mesajlar: 397 Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:
Mesaj
gönderen ofenX » 25 Nis 2006 03:43
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.
fduman
Moderator
Mesajlar: 2749 Kayıt: 17 Ara 2004 12:02
Konum: Ankara
Mesaj
gönderen fduman » 25 Nis 2006 03:46
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 » 25 Nis 2006 03:51
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.
ofenX
Üye
Mesajlar: 397 Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:
Mesaj
gönderen ofenX » 25 Nis 2006 03:58
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.
Gold_Lady
Üye
Mesajlar: 142 Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:
Mesaj
gönderen Gold_Lady » 25 Nis 2006 04:06
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?
ofenX
Üye
Mesajlar: 397 Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:
Mesaj
gönderen ofenX » 25 Nis 2006 04:16
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.
Gold_Lady
Üye
Mesajlar: 142 Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:
Mesaj
gönderen Gold_Lady » 25 Nis 2006 04:20
Çok özür dilerim, zamanınızı alıyorum,
Sonuç döndürmeyen ne demek?
ofenX
Üye
Mesajlar: 397 Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:
Mesaj
gönderen ofenX » 25 Nis 2006 04:24
Merhaba
yazdığınızda size kurum table ının içinde kayıtlar varsa ekrana gelir. Bu sonuç dönen bir komuttur.
Ama
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.
Gold_Lady
Üye
Mesajlar: 142 Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:
Mesaj
gönderen Gold_Lady » 25 Nis 2006 04:31
Tamam anladım, çok teşekkür ederim.