Galiba anlatamadım. Bir örnekle anlatayım
Cari hareketlerin tutulduğun tablo
CariHareket
nKodCariHareket I, cEvrakNo C(10), ..., nKodMuhasebeIslemleri
Primary Key nKodCariHareket (AutoInc)
Muhasebe İşlemleri tablosu
MuhasebeIslemleri
nKodMuhasebeIslemleri I, cKodHesap C(20), ...
Primary Key nKodMuhasebeIslemleri (AutoInc)
CariHareket ile MuhasebeIslemleri tabloları arasında nKodMuhasebeIslemleri sahasına göre relationship kurdum.
Örnek olarak;
CariHareket tablosuna nakit tahsilat işlemi girilecektir. Daha sonra kullanıcı herhangi bir zamanda nakit tahsilat hareketinin otomatik entegrasyonunu yaparak muhasebeleştirecektir.
CariHareket tablosuna nakit tahsilatın yazılması
Insert Into CariHareket (cKodHesap, ...) Values('A011', ...)
Insert Into'da nKodMuhasebeIslemleri sahası yazılmıyor. Tabloda varsayılan değer 0 olarak tanımlandığından kayıt aşağıdaki gibi oluyor
nKodCariHareket cKodHesap ... nKodMuhasebeIslemleri
5789 A011 ... 0
Entegrasyon yapıldığında muhasebe işlemleri tablosuna yazılması gereken
Insert Into MuhasebeIslemleri (cKodHesap, ...) Values('120011', ...)
nKodMuhasebeIslemleri cKodHesap ...
6565 120011 ...
CariHareketi'de bu kayıtla ilişkilendirmek için
Update CariHareket Set nKodMuhasebeIslemleri = 6565 Where nKodCariHareket = 5789
Yapıyorum(dum)
Yapıyordum çünkü relationship'i tanımladığımdan beri daha ilk insert komutunda hata alıyorum.
Insert Into CariHareket (cKodHesap, ...) Values('A011', ...)
komutunda nKodMuhasebeIslemleri sahasında 0 değeri atandığı için ve 0 değeri MuhasebeIslemleri tablosunda tanımlı olmadığından SQL hata veriyor.
Bunu çözmek için "EnForce Foreign Key Constrain" No olarak ayarlamak zorunda kalıyorum.
Bu durumda da nKodMuhasebeIslemleri sahasına herhangi bir değer yazabiliyorum.
Bunun bir çözümü var mı?
Not:
İlgili sahanın Default Value'sını atamayıp Null değer içerebilir işaretlediğimde sorun yok. Ancak ben programın içinde Null değer kullanımı yapmak istemiyorum.
/o---------------------o\
www.haser.com\o---------------------o/