Foreign key Kullanımı

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Foreign key Kullanımı

Mesaj gönderen Uğur1982 »

merhaba arkadaşlar;

bu soruyu sormamak için çok uğraştım,örnek bile yaptım çare olmadı :)

veritabanında foreign keyi oluşturuyorum.hepsi tamam.

tek Datasette denedim.SelectSQL'ine şu kodları yazdım
SelectSQL(select * from CARIKART,SAHIS_BILGILERI WHERE
CARIKART.KOD=SAHIS_BILGILERI.KISI_BILGI)

iki tabloyuda görüyor.yalnız Modify,Insert Sqlleri çalışmıyor.(Burdaki kastım hem CARIKART hemde SAHIS_BILGILERI tablosuna aynı anda
tek IBDataset 'le kayıt yaptırmak).denedim olmuyor..

Bu iş için iki IBdataset mi kullanmak gerekiyor.Master tablo için ayrı,Detail tablo için ayrı.

Teşekkür ederim.
vt:Firebird 1.5
assoft

Mesaj gönderen assoft »

IBdataset için insert, update, delete gibi SQL komutlarını SelectSQL içine yazacaksınız
örneğin :

Kod: Tümünü seç

IBDataset1.Close;
IBDataset1.SelectSQL.Clear;
IBDataset1.SelectSQL.Add('INSERT INTO ABONE (ADISOYADI, ADRESI, TELEFONU)')
IBDataset1.SelectSQL.Add('Values(:ADISOYADI, :ADRESI, :TELEFONU)');
IBDataset1.Params[0].Value := Edit1.Text;
IBDataset1.Params[1].Value := Edit2.Text;
IBDataset1.Params[2].Value := Edit3.Text;
IBDataset1.ExecSQL;
gibi birde arama yaoarken biraz kasmak gerekiyor diye düşünüyorum...
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

sorum yanlış anlaşılmış
demek istediğim o değil.
master,detail tabloya
IBdatasetle kayıt yapacağımız zaman,aynı anda iki tabloya kayıt yapacağımız için ,tek IBdatasetle iki tabloyada kayıt yapmak istedim,olmadı bunun mantığı nedir ,
iki IBDataset mi kullanmak gerekir.
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

hocam şu linke bir bakın isterseniz

belki yardımcı olur size ...

http://www.delphiturkiye.com/index.php? ... xgiris.htm
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

vedat hocam dediğim gibi benim sorunum:

IBdataSet Nasıl kullanılır değil

Asıl sorum:

IBDataset'in SelectSQL'ine şu kodu yazdığım zaman

Kod: Tümünü seç

select * from CARIKART,SAHIS_BILGILERI WHERE 
CARIKART.KOD=SAHIS_BILGILERI.KISI_BILGI
IBDataseti ters tıkladıyıp "Dataset Editor" dediğimiz zaman
burada hem CARIKART,hemde SAHIS_BILGILERI tablosunun fieldleri çıkıyor ben burada 'Database Default' -->"Primary Key" seçip "Genarete SQL" tıkladığım zaman otomatik SQL kodlarını oluşturuyor.

bu olaylardan sonra IBDataseti Active=True yapmak istediğimde
verdiği hata:

Kod: Tümünü seç

Column Unkown KISI_BILGI
zaten sorun burda açık ve net.

Kod: Tümünü seç

IBDataseti ters tıkladıyıp "Dataset Editor"  dediğimiz zaman 
burada hem CARIKART,hemde SAHIS_BILGILERI tablosunun fieldleri çıkıyor
yukarıdaki anlatılıyor zaten bana fieldleri eklememi izin veriyor.(iki tabloyu tek tablo gibi görüyor)

IBDataset.Active=True yaptığımda o zaman niye hata veriyor.yoksa SQL
aynı anda İki tabloya update işlemi yapmıyormu .
aşağıdaki sözü bunun için demiştim

Kod: Tümünü seç

IBdatasetle kayıt yapacağımız zaman,aynı anda iki tabloya kayıt yapacağımız için ,tek IBdatasetle iki tabloyada kayıt yapmak istedim,olmadı bunun mantığı nedir  
olay sadece budur :)

ilginiz için teşekkür ederim.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Ben burda takıldım "ters tıkladıyıp" :lol: :lol: mouse u tersmi çeviricem :lol: :lol: gerçi onuda yaptım ama olmadı :D

Senin bahsetiğin property editörde tüm table ve seçtiğin table ın fieldlarının gelmesinin sebebi sana kolaylık olsun SQL yazarken yazılım hatalarını engellemek ve table alanlarını ezberinde tutmana gerek bırakmamak.
gelelim sonuna update insert işlemlerinde sadece bir select ile yaptığın yani seçtiğin table ı kullanabilirsin. Where kısmında sadece koşul verebilirsin.
Master detail kayıtlarda önce master ı post edip ardında detail i post etmek zorundasın

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

benim öğrenmek istediğim buydu yani
anlışılan iki IBDataset kullanıcaz

teşekkür ederim.
Cevapla