SQL ile kayıt silme (yardım)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

SQL ile kayıt silme (yardım)

Mesaj gönderen y.kulac »

arkadaşlar. Query1 ile DbGrid e listelediğim kayıtlardan istediğim
kaydı nasıl silebilirim. :?:
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Silmek istedigin kayta ait bir anahtar alan (id,no vs.) belirleyip
Delete from TABLODAN where id=5 gibi bir sql cumlesi ile id si 5 olan kayıtı silersin
eger amacın dbgrid de aktif kayıtı silmek ise table1.delete yada datasource.dataset.delete demen yeterli
tam olarak aklındakini soylersen daha yardımcı olabilirim
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Benim kullandığım yöntem, DBGrid'de çift tıklandığında değerler formun üst kısmındaki edit,combox v.b. lere yazdırıyorum. Sil denildiğinde form üzerindeki bilgilerden anahtar kelime(leri) kulanarak silmeyi yaptırıyorum. Örnek yazacak olursak;

Kod: Tümünü seç

with Query1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('DELETE FROM TABLO_ISMI WHERE ALAN_ISMI='''+Edit1.Text+'''');
  ExecSQL;
end;
gibi..

Not: Eğer ALAN_ISMI sayısal bir değer ise tırnakları koymuyorsun
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

Daha ayrıntılı olarak şöyle anlatayım.
Query1 ile Urun_bilgileri isimli veri tabanındaki bilgileri
DBGrid1 e aktarıyorum. Urunadi,Urunkodu,Tarih vs.
Şimdi Örneğin listelenen kayıtlardan 1. veya 10. kaydı silmek
istiyorum. Fare ile silinmek istenen kayda geleceğim ve silme işlemini
yapacağım. Table1 ile listelenen kayıtlar Table1.Delete komutu ile
silinebiliyor, fakat veritabanına Query1 ile bağlantı kuruyorum.
Yani DataSource1 in DataSet i Query1 e bağlı. sorunum bu.
iyi çalışmalar.ilgilenen arkadaşlara teşekkür ederim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

tablonda tekil bir alan varsa ona göre silebilirsin. Mesela ürün kodu olabilir. Tekillikten kasıt, o değerden tabloda bir tane olacak, başka olmayacak. Mesela ürün kodu 10 olan kayıt 1 tane olacak. Bu durumda böyle bir kayıtı silmek için :

DELETE FROM URUN_BILGILERI
WHERE URUN_KODU='10'

gibi bir SQL komutu ile silebilirsin.

NOT : Bu iş için ayrı bir Query kullan.

NOT 2 : Bu sql komutunu Query'e nasıl eklerim diyorsan, sitede veritabanı bölümündeki "SQL cümlesini Query'e eklemek" yazısını oku.

Kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Sanırım sorun mouse ile silmek istediğim kayıtları nasıl seçerim? Eğer bu ise sorun ilk mesajımda da attığım gibi be nçift tıklayarak forma getirtiyorum kayıtı. Bunun için de DBGrid'in doubleclick eventına şunu yazıyorum:

Kod: Tümünü seç

edit1.Text := Query1.FieldByName('URUN_ISMI').AsString;
edit2.Text := Query1.FieldByName('URUN_no').AsString;
gibi..
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Query1.Delete komutu işini görecektir.
delete komutu table nesnesine has bir komut değil. Query dede çalışacaktır. Seçtiğin kaydın üstüne konumlandığında bir butonun onclick olayına bu kodu yaz. Tıkladığında aktif cursordeki kayıt silinecektir.
Sevgiler..
Cevapla