Lütfen Yarım Kayır Silme Konusunda

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
okanbaris
Üye
Mesajlar: 16
Kayıt: 15 Kas 2005 10:13

Lütfen Yarım Kayır Silme Konusunda

Mesaj gönderen okanbaris »

:oops: arkadaşlar yaptığım programda 4 tablo var
öğrenci
notlar
devam
aidat
öğrenciden kayıt silindiği zaman tüm tablolarda o öğrenci numarası ile ilgili kayıtlar silinsin istiyorum bunun için nasıl bir SQL sorgusu yazmam gerekir sıkıştım kaldım :oops:
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

delete from ogrencidetay where id in (select ogrenci_id from ogrenci where sart = ?) gibi.......

Kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
okanbaris
Üye
Mesajlar: 16
Kayıt: 15 Kas 2005 10:13

Mesaj gönderen okanbaris »

ya hüseyin kardeş anlayamadım yazdığını biraz daha açarsançok iyi olacak ben şöle bir sorgu yazdım ama olmadı hata veriyor

SQL sorgusu
DELETE FROM devam.db
WHRE Numara=:k1

kayıt sil butonuna yazdığım kod
Query1->Close();
Query1->Params->Items[0]->AsString=Table1Numara->Text;
Query1->ExecSQL();

Table1 öğrenci tablosu devam tablosuda öğrencilere ait devamsızlık tablosu
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

devam.db dediğine göre sanırım veritabanı olarak paradoks kullanıyorsun. Gerçek bir veritabanı için master/detail ilişkiler için master kayıt silinirken detayları CASCADE olayı veya BEFORE DELETE TRIGGER i ile tutarlılığı bozmadan silebilirsin. Paradoks ta ise DATASET in BeforeDelete ında yazacağın kodlarla silebilirsin.

Kod: Tümünü seç

Table2.First;
while not Table2.Eof do
  Table2.Delete;
viewtopic.php?t=8383&view=next[/code]
En son rsimsek tarafından 18 Ara 2005 11:28 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
okanbaris
Üye
Mesajlar: 16
Kayıt: 15 Kas 2005 10:13

Mesaj gönderen okanbaris »

ustam evet paradox kullandım tüm tablolarda no alanı sadece index işaretli primary secondery filan tanımlamadım herhalde o şekilde tanımlama yapıp normal delete komutu ile silmem gerekir anladığım kadarıyla DBDESKTOP da bu dediğiniz olay nasıl gerçekleşiyor onu bilmediğim için SQL e girdim ve QUERY ile yapiim dedim ama oda olmadı yukardaki bahsettiğim pirimay secondary olayı nasıl gerçekleşiyor DBDESKTOP da birde bunu açıklayabilirseniz sevinirim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Paradoks ta tek bir query ile ilişkili tüm tablolardaki kayıtları silmek bildiğim kadarıyla zor. Sen silmeyi dediğim gibi Tablo nun BeforeDelete ında yapabilirsin.

Not: Önceki mesajda Table1.First; sevhen yazılmıştı Table2.First; olacaktı, değiştirdim :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
okanbaris
Üye
Mesajlar: 16
Kayıt: 15 Kas 2005 10:13

Mesaj gönderen okanbaris »

saol ustadım deneyeyim bir
bir kayıt silmek neler getirdi başımıza :) :lol:
Cevapla