db ye bu şekilde kayıt yapamıyorum.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
db ye bu şekilde kayıt yapamıyorum.
Şimdi ben durumu detaylı bir şekilde açıklamak istiyorum.
benim formumda Hasta Kimlik Bilgileri,Hasta Adres Bilgileri ve Hasta İletişim Bilgileri diye 3 bölüm var.(ACCESS kullanıyorum)
Veri tabanında da tablo isimleri bu şekilde.
forumda ayrıca yeni kayıt ve kaydet diye iki de button var.
hasta adres bilgileri bölümündeki db editler db ye bağlı oldukları için formun açılışında içi veri dolu olarak geliyor.
ben yeni kayıt butonuna bastığımda adoquerykimlik.insert; adoqueryadres.insert; adoqueryiletisim.insert; kodları çalışıyor.
kaydet butonunda ise adoquerykimlik.post; adoqueryadres.post; adoqueryiletisim.post; kodları çalışıyor.
veri tabanında bu tabloların hepsinde tckimlikno diye bir alan var ve bu 3 tablo birbiri ile ilişkili.
yeni kayıt butonuna basıyorum kayıtları giriyorum.kayıt et butonuna basınca şöyle bir hata veriyor.
" Tabloda Yapılmasını istediğiniz değişiklikler dizinde birincil anahtarda veya ilişkilerde yinelenen değerler oluşturdukları için başarız oldu.yinelenen verileri içeren alan veya alanlardaki verileri değiştirin,dizini kaldırın veya dizini,yinelenen girdilere izin verecek şekilde yeniden tanımlayın ve yeniden deneyin. "
tam olarak ne demek oluyor bu ?? kimlik bilgisini kayıt ettikten sonra adres ve iletişim tablolarında da tckimlik no olduğu için mi hata veriyor acaba.?
benim formumda Hasta Kimlik Bilgileri,Hasta Adres Bilgileri ve Hasta İletişim Bilgileri diye 3 bölüm var.(ACCESS kullanıyorum)
Veri tabanında da tablo isimleri bu şekilde.
forumda ayrıca yeni kayıt ve kaydet diye iki de button var.
hasta adres bilgileri bölümündeki db editler db ye bağlı oldukları için formun açılışında içi veri dolu olarak geliyor.
ben yeni kayıt butonuna bastığımda adoquerykimlik.insert; adoqueryadres.insert; adoqueryiletisim.insert; kodları çalışıyor.
kaydet butonunda ise adoquerykimlik.post; adoqueryadres.post; adoqueryiletisim.post; kodları çalışıyor.
veri tabanında bu tabloların hepsinde tckimlikno diye bir alan var ve bu 3 tablo birbiri ile ilişkili.
yeni kayıt butonuna basıyorum kayıtları giriyorum.kayıt et butonuna basınca şöyle bir hata veriyor.
" Tabloda Yapılmasını istediğiniz değişiklikler dizinde birincil anahtarda veya ilişkilerde yinelenen değerler oluşturdukları için başarız oldu.yinelenen verileri içeren alan veya alanlardaki verileri değiştirin,dizini kaldırın veya dizini,yinelenen girdilere izin verecek şekilde yeniden tanımlayın ve yeniden deneyin. "
tam olarak ne demek oluyor bu ?? kimlik bilgisini kayıt ettikten sonra adres ve iletişim tablolarında da tckimlik no olduğu için mi hata veriyor acaba.?
Re: db ye bu şekilde kayıt yapamıyorum.
kimlik bilgilerinde Tcno primary sanırım ve sen aynı numarayı tekrar girmeyi çalışıyorsun.
bu tabloları birleştirirsen daha iyi olur.
bu tabloları birleştirirsen daha iyi olur.
Bir kelimenin anlamını öğretsen bile yeter..



Re: db ye bu şekilde kayıt yapamıyorum.
tckimlik primary tabiki de bu tabloları birleştiremem ki.bu benim proje ödevim ve tabloları birleştirirsem hoca kabul etmez.ayrıca böyle olması göze daha hoş geliyor.bilgileri parçalayarak kayıt etmek ve bunları birleştirerek çağırmak hocanında hoşuna gidecektir..
"hasta_kimlik_bilgileri tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez ve değiştiremezsiniz diye bir hata verdi şimdi."
bu hatadan sonra hasta_kimlik_bilgileri tablosuna kayıt yapıyor ama diğer tablolara kayıt yapmıyor.
çıkamadım gitti bu işin içinden
"hasta_kimlik_bilgileri tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez ve değiştiremezsiniz diye bir hata verdi şimdi."
bu hatadan sonra hasta_kimlik_bilgileri tablosuna kayıt yapıyor ama diğer tablolara kayıt yapmıyor.
çıkamadım gitti bu işin içinden

Re: db ye bu şekilde kayıt yapamıyorum.
s.a.
senin yaptığın işlemlerde problem şu.
detay tablolara master tablonun id si gitmiyor.
Bunun için önce master tabloyu post etmen lazım. sonra detay tabloları insert etmen lazım.
master tabloyu post etmeden detay tabloları insert ettiğin için detay tablolar master tablonun id sini yakalayamıyorlar. buda sıkıntıya sebeb oluyor.
sana önereceğim iki yol var.
1.si önce master tabloyu insert - post et. sonra detay tabloları insert et. yani master tablo kaydedilmeden detay tablolar için insert komutunu verme.
2.si db değil normal editler kullan. daha sonra editlere girilen bilgileri sıra ile master ve detay tablolara aktar.
kolay gelsin.
senin yaptığın işlemlerde problem şu.
detay tablolara master tablonun id si gitmiyor.
Bunun için önce master tabloyu post etmen lazım. sonra detay tabloları insert etmen lazım.
master tabloyu post etmeden detay tabloları insert ettiğin için detay tablolar master tablonun id sini yakalayamıyorlar. buda sıkıntıya sebeb oluyor.
sana önereceğim iki yol var.
1.si önce master tabloyu insert - post et. sonra detay tabloları insert et. yani master tablo kaydedilmeden detay tablolar için insert komutunu verme.
2.si db değil normal editler kullan. daha sonra editlere girilen bilgileri sıra ile master ve detay tablolara aktar.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: db ye bu şekilde kayıt yapamıyorum.
öneriler için teşekkür ederim.
onuda denedim ben ilk olarak master tabloyu insert ettim ve post ettim.
sonra detay tabloları insert ettim ama post ederken
hasta_kimlik_bilgileri(master yani) tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez veya değiştiremezsiniz yazıyor.
ayrıca veri tabanı konusunda yeniyim de normal editleri db de istediğim tabloya nasıl bağlıyıcam ??
onuda denedim ben ilk olarak master tabloyu insert ettim ve post ettim.
sonra detay tabloları insert ettim ama post ederken
hasta_kimlik_bilgileri(master yani) tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez veya değiştiremezsiniz yazıyor.
ayrıca veri tabanı konusunda yeniyim de normal editleri db de istediğim tabloya nasıl bağlıyıcam ??
Re: db ye bu şekilde kayıt yapamıyorum.
S.a.
Master tablonu post yaptıkdan sonra, birincil anahtarın değerini bir değişkene ata, daha sonra detail tablolarına git post etmeden önce, değişkene atadığın id'yi elle aktarıp, sonra post et...
Master tablonu post yaptıkdan sonra, birincil anahtarın değerini bir değişkene ata, daha sonra detail tablolarına git post etmeden önce, değişkene atadığın id'yi elle aktarıp, sonra post et...
Re: db ye bu şekilde kayıt yapamıyorum.
A.s bunuda düşündüm ama veri tabanındaki bir tabloya elle nasıl kayıt girildiğini bilmediğim için yapamadım.baypipox yazdı:S.a.
Master tablonu post yaptıkdan sonra, birincil anahtarın değerini bir değişkene ata, daha sonra detail tablolarına git post etmeden önce, değişkene atadığın id'yi elle aktarıp, sonra post et...
yani kaydet butonunda ilk önce dbeditin içindeki ni bir değişkene aktarırım sonra diğer tabloları kayıt ederken o tablodaki tckimlikno alanına da o değeri elle aktarırım ama bunu nasıl yapıcam bilmiyorum.Veri tabanında ki bir tabloya bir değişkendeki değeri nasıl aktarırım ??
Re: db ye bu şekilde kayıt yapamıyorum.
Yukarda ilk mesajında AdoQueryKimlik, Adres ve iletişim yazmışsın'ya ordan gidelim.
Şimdi ilk olarak Query nesnemize tablomuzun alanlarını eklemez sorundayız, bunun için query nesnesine çift tıkla veya sağ click yap fields editör'ü seç.
Daha sonra açılan pencerede sağ click yap, add fields'de, daha sonra tablona ait field'lerin geldiğini göreceksin, ok diyerek ekle.. bunu diğer tablolar içinde yap.
Daha sonra olay şu şekilde olacak,
Master Tablomuz Kimlik, Detay Tablomuz İletisim olsun.
ilk olarak var'da bir değişken tanımla misal adına kimlikno'de tipi'ni belirt.
kimlikno=AdoQueryKimlikTcno.asinteger; burda tcno yu değişkene aktarıyoruz, AdoQueryKimlik yazıp ctrl+space yaparsan yukardaki ilk belirtiğim işlemden ötürü
tablonun diğer alanlarınıda göreceksin... bu şekilde istediğin alandaki değeri alıp aktarabilirsin...
Senin yapman gerek işlem şu şekilde olmalı.
AdoQueryKimlik.post; //master tablomu, post ediyorum
kimlikno=AdoQueryKimlikTcno.asinteger; //burda master tablodan değeri aldık, değişkene attık. ve artık işimiz master tablo ile bitti..
Detail tablolaa gelelim..
AdoQueryAdres.edit;
AdoQueryAdresTcno.asinteger:=kimlikno;
.
.
.
//burda tüm fieldlerine el ile veri gönerebilirsin
verileri girdikden sonra, geriye post etmek kalır..
AdoQueryAdres.post;
Yukarda editleri nasıl bağlayacağını sormuşsun, editler için herhangi bir bağlama söz konusu değil, edit'leri sadece uygun eventlarda şu şekilde bir işlem yapıyoruz.
Misal dbgrid'in cell click evet'ına gel ve aşağıdaki kodu yaz,
edit1.text:=AdoQueryAdresTcno.asstring; // bu şekilde..
bu işlemi yaptığında, grid'te hangi kaydı seçersen, o kaydın tc numarası otomatik, edit'in içine atar...
Şimdi ilk olarak Query nesnemize tablomuzun alanlarını eklemez sorundayız, bunun için query nesnesine çift tıkla veya sağ click yap fields editör'ü seç.
Daha sonra açılan pencerede sağ click yap, add fields'de, daha sonra tablona ait field'lerin geldiğini göreceksin, ok diyerek ekle.. bunu diğer tablolar içinde yap.
Daha sonra olay şu şekilde olacak,
Master Tablomuz Kimlik, Detay Tablomuz İletisim olsun.
ilk olarak var'da bir değişken tanımla misal adına kimlikno'de tipi'ni belirt.
kimlikno=AdoQueryKimlikTcno.asinteger; burda tcno yu değişkene aktarıyoruz, AdoQueryKimlik yazıp ctrl+space yaparsan yukardaki ilk belirtiğim işlemden ötürü
tablonun diğer alanlarınıda göreceksin... bu şekilde istediğin alandaki değeri alıp aktarabilirsin...
Senin yapman gerek işlem şu şekilde olmalı.
AdoQueryKimlik.post; //master tablomu, post ediyorum
kimlikno=AdoQueryKimlikTcno.asinteger; //burda master tablodan değeri aldık, değişkene attık. ve artık işimiz master tablo ile bitti..
Detail tablolaa gelelim..
AdoQueryAdres.edit;
AdoQueryAdresTcno.asinteger:=kimlikno;
.
.
.
//burda tüm fieldlerine el ile veri gönerebilirsin
verileri girdikden sonra, geriye post etmek kalır..
AdoQueryAdres.post;
Yukarda editleri nasıl bağlayacağını sormuşsun, editler için herhangi bir bağlama söz konusu değil, edit'leri sadece uygun eventlarda şu şekilde bir işlem yapıyoruz.
Misal dbgrid'in cell click evet'ına gel ve aşağıdaki kodu yaz,
edit1.text:=AdoQueryAdresTcno.asstring; // bu şekilde..
bu işlemi yaptığında, grid'te hangi kaydı seçersen, o kaydın tc numarası otomatik, edit'in içine atar...
Re: db ye bu şekilde kayıt yapamıyorum.
anladım çom teşekkür ederim açıklama için...