kayıt silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

kayıt silme

Mesaj gönderen mustafa_kaplan »

query ile istediğim özelliklerdeki kayıtları nasıl silerim acaba. Mesela adı ahmet olan kayıtları.Birde tarih alanım var bu alan içinden istediğim ayı nasılbulacam...
kolay gelsin..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

silme SQL'i şu şekilde :

DELETE FROM TABLO_İSMİ
WHERE ADI='Ahmet'

diğeri içinse Delphi Temel kısmındaki Date-Time fonksiyonları isimli yazıya bir bak. Baya geniş açıklamalar var orda.

Kolay gelsin.
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

Query ile silme işlemini denedim ama
Error creating cursor handle diye bir mesaj veriyor.
terih alanı değil arattığım alan.
kod şöyle:

delete FROM YAPILAN.dbf
WHERE SIRA_NO=:SIRA_NO
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

muhtemelen

Kod: Tümünü seç

Query1.Open;
seklinde bir satir ile query'yi calistirmayi deniyor olabilirsiniz. TQuery componentinin sql'inde eger bir select statemen varsa Open metodu kullanilir. Delete, update, insert seklindeki sql kodlari icin

Kod: Tümünü seç

Query1.ExecSQL;
metodunu kullanmalisiniz...
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

söylediğiniz gibi Query1.ExecSQL; kulandım.ama sorun gitmedi.
Ben query1 in object inspector deki SQL özelliğine delete FROM SORUSTURMAYAPILAN.dbf
WHERE SOR_NO=:SOR_NO ekliyorum .
Daha sonra bir buton içine de :

Query1.ExecSQL;
Query1.Params[0].Text:=edit7.Text;
Query1.close;

kodlarını giriyorum. Ama sorun SQL ye yazdığım kodlardan kaynaklanıyor..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

parametrelere degerleri ExecSQL metodunu cagirmadan once atamalisiniz.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Fahrettin Hocamızın Dediği gibi

İlk önce Query i Kapatmalısın kapatıktan sonra parametreyi atamalı ve en son olarakta ExecSql Olayı ile işlevi çalıştırmalısın.

Sıralama Şekli

Query1.close;
Query1.Params[0].Text:=edit7.Text;
Query1.ExecSQL;
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

arkadaşlar o kodu düzelttim ama sorun
query1 in object inspector deki SQL özelliğine yazdığım delete FROM SORUSTURMAYAPILAN.dbf
WHERE SOR_NO=:SOR_NO kodlarından kaynaklanıyor..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Dbase dosyalarıyla hiccalismadim. Paradox kullandigim nadir durumlarda da yine BDE'de bir alias tanimlayip Delphi tarafinda bir database componenti koyup ona ilgili alias'i gosterip Database compoenntine verecegim ismi de diger table ve query componentlerinin databasename ozelligi olarak secip kullandim. Tabi SQL ozellikleri icinde de dogrudan dosyanin adini tablo adi olarak kullandim. .dbf seklinde kullanimdan dolayi acaba ilgili dosyanin bulunmasi ile ilgili bir sorun mu var diyorum.

Bir de en son durumda verilen hata nedir hala ayni hata mesajini mi veriyor?
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

evet halen aynı mesajı veriyyor. Query ile aratmayı denedim acaba başka bi sorunmu var diye.Arattığım kayıtları buldu. Fakat silmek için yazdığım kodlarda sorun çıkıyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

SQL'i dinamik oluştur. yani no'yu Delphi tarafından direk ekle. Şuna benzer birşey olacak :
Query1.SQL.Clear;
Query1.SQL.Add('DELETE FROM SORUSTURMAYAPILAN.dbf ');
Query1.SQL.Add('WHERE SOR_NO=' + Edit7.Text);
Query1.ExecSQL;
kolay gelsin.
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

yaw arkadaşlar bu seferde edit7 nin içerisindeki değeri bulamadi yazıyor :( field '5' not found diye bir mesaj çıkıyor. Artıları değiştirdim işaretleri değiştirdim ama olmuyor .
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

SQL cümlende bir problem var. ExecSQL'den önce, aşağıdaki komutu yazarak cümlendeki yanlışı bul düzelt.

ShowMessage(Query1.SQL.Text);

Kolay gelsin.
Kullanıcı avatarı
mustafa_kaplan
Üye
Mesajlar: 38
Kayıt: 03 Tem 2003 01:39

Mesaj gönderen mustafa_kaplan »

çıkan mesaj aynen şöyle:

DELETE FROM SORUSTURMAYAPILAN.DBF
WHERE SOR_NO=:5


=: İŞARETİNİ FALAN DEĞİŞTİRDİM DAHA ÖNCE AMA ONDA DA DÜZELMEDİ HOCAM.

sor_no alanı numeric değil character olarak tanımlandı tablede....
En son mustafa_kaplan tarafından 11 Eyl 2003 08:57 tarihinde düzenlendi, toplamda 3 kere düzenlendi.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu kod zaten calismaz.

Kod: Tümünü seç

DELETE FROM SORUSTURMAYAPILAN.DBF 
WHERE SOR_NO=5 
seklinde bir kod elde edip calistirdiktan sonra hata mesaji vermemesi gerekir.
Cevapla