merhaba arkadaslar.. bu konu daha once acildimi bilmiyorum biraz inceledim ama formda goremedim..eger acilmissa kusura bakamyin... soruma gecmek istiyorum
simdi ben firebird ve ibexpert kullanarak 2 tablo olusturdum. 1. tablom da isimler 2. tablomda telefon nuramları kayıt edilecek
TBLKIMLIK TBLTELEFON
-id -id
-ad -kimlikid
-soyad -telno
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('INSERT INTO TBLKIMLIK(TCKIMLIK,AD,SOYAD) values ('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''')');
IBQuery1.Open;
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Add('INSERT INTO TBLTELEFON(TELNO) values ('''+edit4.Text+''')');
IBQuery2.Open;
iki tabloya bilgileri girdim bu sekilde ama ikinci tablonun KIMLIKID alanına 1.tablodaki idi yazdıramadım bunu dataset kullanırken datasetin before postuna ibdataset2.fieldbyname('KIMLIKID').value:=ibdataset1.fieldbyname('ID').value; yazıyordum v yapıyordum ama query ile bunu gerceklestiremedim..
yardımlarınızı bekliyorum
ibquery ile cift tabloya id yazdırma
Re: ibquery ile cift tabloya id yazdırma
Bazı programcıların kendilerini ID'no alanı kullanmaya mecburmuş gibi hissetmelerini anlamıyorum.
Veri tabanı sistemlerinde her tablo için en az bir tane anahtar kelime bulunması tavsiye olunur.
Ben tablo oluştururken tekrar edilmeyecek, sıralı olması avantajlı olacak alanları key olarak belirlerim.
Bence sizin TBLKIMLIK tablonuzda TCKIMLIK alanı key olarak ayarlanmalıdır.
Buna göre TBLTELEFON tablonuzu TBLKIMLIK tablonuza bağlarken de TCKIMLIK
alanına göre bağlantı kurmanız gerekir. TBLTELEFON tablonuzun alanları TCNO,TELNO olabilir.
Bir kişinin birden fazla telefon numarası olabileceğine göre bu iki alanıda key olarak ayarlamanız gerekir.
buna göre telefon numarası tablosuna şöyle kayıt yapılabilir:
Veri tabanı sistemlerinde her tablo için en az bir tane anahtar kelime bulunması tavsiye olunur.
Ben tablo oluştururken tekrar edilmeyecek, sıralı olması avantajlı olacak alanları key olarak belirlerim.
Bence sizin TBLKIMLIK tablonuzda TCKIMLIK alanı key olarak ayarlanmalıdır.
Buna göre TBLTELEFON tablonuzu TBLKIMLIK tablonuza bağlarken de TCKIMLIK
alanına göre bağlantı kurmanız gerekir. TBLTELEFON tablonuzun alanları TCNO,TELNO olabilir.
Bir kişinin birden fazla telefon numarası olabileceğine göre bu iki alanıda key olarak ayarlamanız gerekir.
buna göre telefon numarası tablosuna şöyle kayıt yapılabilir:
Kod: Tümünü seç
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Add('INSERT INTO TBLTELEFON(TCNO,TELNO) values ('''+edit1.Text+''','''+edit4.Text+''')');
IBQuery2.Open;
Re: ibquery ile cift tabloya id yazdırma
ustad harika bi cevap verdiginiz...
hemen bunu denemeye baslayim..
delphiye yeni basladim kademe kademe ilerletiyorum..
tesekkurler
hemen bunu denemeye baslayim..
delphiye yeni basladim kademe kademe ilerletiyorum..
tesekkurler
Re: ibquery ile cift tabloya id yazdırma
Olayın delphi le alakası yok. Tamamen veri tabanı mantığı ile alakalı. Belki forumda eşsizliği sağlaması açısından anahtar (ID) alandan çok bahsedildiğinden bu şekilde düşünmüş olabilirsiniz. Halbuki tekrarlamayan alanların tek (özellikle istenmiyorsa) tabloda olması gerekir. Yoksa telefon numarasına ayrı bir tablo, isme ayrı bir tablo, adrese ayrı bir tablo kullanışlı olmaz 

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Re: ibquery ile cift tabloya id yazdırma
Haklısınız hocam, ama sanki kafama bir taş atılmış gibi hissettim.rsimsek yazdı:Olayın delphi le alakası yok. Tamamen veri tabanı mantığı ile alakalı. Belki forumda eşsizliği sağlaması açısından anahtar (ID) alandan çok bahsedildiğinden bu şekilde düşünmüş olabilirsiniz. Halbuki tekrarlamayan alanların tek (özellikle istenmiyorsa) tabloda olması gerekir. Yoksa telefon numarasına ayrı bir tablo, isme ayrı bir tablo, adrese ayrı bir tablo kullanışlı olmaz
Adamın birden fazla telefonu olabilir diye ayrı bir tablo tutmanın anlamı yok tabi.
Birkaç tane telefon numarası alanı açmak veya telno alanının boyutunu birkaç telefonun yazılabileceği şekliyle belirtmek daha uygundur.
Ancak şöyle bir durum olabilir. TBLKIMLIK tablosunda kişinin temel bilgileri bulundurulur. TBLKISIDETAY isimli ikinci bir tablo açılıp,
kişinin detaylı olarak bilgileri girilebilir. Bunun şöyle bir avantajı olabilir, kayıt aramak için kişinin temel bilgileri yeterli olacaktır ve sadece
TBLKIMLIK tablosundan select sorgusu yapılır. Kişi kartı açılırken select sorgusu tblkimlik ile detay tablosu birleştirilerek yapılır.
Buda sadece performans artışı sağlayabilir (detay tablodaki alan sayısı fazla olması durumunda).
Re: ibquery ile cift tabloya id yazdırma
Sanırım detay tablo olayı tam anlaşılamadı! Çünkü kişiye ait bilgiler çok da olsa genelde tek tabloda tutulur özel durumlar dışında bölünmez. Detaydaki amacı şöyle anlatayım: Aynı proje üzerinde düşünün ki kişilerin telefon görüşmelerinin kaydını seri porttan gönderen bir santralınız var. O santral sürekli her numaraya ait görüşmeleri dönem sonunda faturalandırmak için bir tabloya yazacaksa bu tablo detay tablosudur. Bu yapıda ilk tablo da ana/master tablo olmaktadır.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!