master and deatil bağlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
longhorn

master and deatil bağlama

Mesaj gönderen longhorn »

merhaba arkadaşlar ben iki tabloyu birbine bağlayamadım.ana tablom
Kaset_no:integer,sure:Time,konu:A
Detail Tablom ise
Kaset_no:integer,timecode:Time,konu:A

Bu iki tabloyu bağlayamadım.detail tablonun mastersource kısmına master tablonun datasourcunu bapladım.masterdetails kısmınada Kaset_no Alanlarını ekledim ama olmadı acele yardım bekliyorum.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

Admin der ki : Arama, Arama, Arama.

viewtopic.php?t=2644&highlight=master+detail

Kolay gelsin.
longhorn

key violation

Mesaj gönderen longhorn »

ya benim aradığım gibi bir kayıt yok forumda.bana detaile ikinci kaydı girerken key violation hatası veriyo.yani masterda mesela müsteri bilgileri var detaildede aldığı ürünler.aldığı ürünler detail oldugu için ben buraya birden fazla kayıt giremiyorum.KEY VIOLATION veriyo.yardım edin ne olur
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Bu biraz kullandığınız yapıya göre değişmekle birlikte :

1. eğer bir SQL veritabanı kullanılıyorsa (Oracle, Sybase, SQL Server, Firebird, Interbase vs.) SQL ile kolayca ilişki kurulabilir. Nasıl yapılacağı sitedeki Makaleler -> Veriabanı -> SQL'e Giriş'te anlatılıyor. Örnekler var.

2. Eğer paradox, dbase gibi dosya tabanlı bir veritabanı ve Table kullanıyorsanız, detail table'ında şunları yapmalısınız. :

* MasterSource kısmından master tablonun datasource'unu seçin.
* Masterfields kısmına tıklatın ve Detail fields ve Master fields kısmından bağlayacağınız alanları seçip Add butonuna basın.

Bu işlem içinde birkaç gereklilik var :

* Bu iki tabloyu birbirine bağlayacak bir veya birkaç alan olmak zorunda. Mesela verdiğim örnekte müşteri no olabilir.
* Her 2 tabloda da bu alan(lar) indeksli olmak zorunda.

Kolay gelsin.
Verdiğim linkte gerekli bilgi var. Yukarda.

Key Violation başka bir olay. Unique olması gereken bir alana aynı kaydı tekrar girmeye çalışıyorsun. Tablo yapını tekrar gözden geçir.

Kolay gelsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
1. ikinci kaydı girdiğin zaman key violation veriyorsa bunu sorunda belirtmen lazım. ilk sorunda buna değinmemişsin.
2. detail tablona otomatik artan bir alan ekle ve detail tablonu kasetid ve yeni eklediğin alana göre indeksle
hata vermesinin sebebi anladığım kadarı ile ikinci tablon sadece kasetid alanına göre sıralı ve bu alan uniq ikinci bir alanıda bu sıralamaya katarsan (ki bu alanın unique olması lazım) sorunun hallolur.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
longhorn

key violation

Mesaj gönderen longhorn »

ne yapmam gerekiyo.mesela söyle birsey olsa.master tabloda kaset_no alanına otomatik bir sayı attırsam.mesela 001 den başlayıp devam edecek.detail tablosunada otomatik olarak 001 i atıyo.ben istiyorumki detail tablosuna mesela K01,K02,K03..... devat etsin.sanırım böyle olursa sorun olmayacak aynı değeri kabul etmiyo.mustafa abi senin dediğini yaptım yani master source ve masterfields alanlarını yaptım.ama olmadı yinede yardımcı olursan sevinirim.bide paradoxta verilerim kaybolurmu yada bozulurmu yada ne bilim bunun gibi bişey olurmu.teşekkür ederim.....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Ben şu yöntemi izliyorum :

MASTER TABLO

ID - otomatik artan bir alan

DETAIL TABLO

ID - otomatik artan bir alan
MASTER_ID - master tablo ile bağlantı için olan alan.

Paradox'a gelince hakkında çok fazla yorum yapmak istemiyorum. Bu konuyu forumda çok konuştuk. Veritabanı seminerlerini seyret ve olabildiğince çabuk paradox/dBase kullanmayı terket :)

Kolay gelsin.
Cevapla