vertabani için bir fikir

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
berken
Üye
Mesajlar: 208
Kayıt: 07 Ara 2005 04:27
Konum: Van

vertabani için bir fikir

Mesaj gönderen berken »

arkadaslar ben bilgi formu diye bir şey yapıyorum programımda..
bilgi formunda kişiye ait bilgiler var bunlar bir tabloda tutuyorum.. her kişiye ait mesela bakmakla yukumlu olduğu kişiler diye bir baska tabloya atmak istiyorum. (bu benım çözüm olarak düşündüğüm.)
yeni kayıt girmeye calışınca kişi bilgilerini dbeditlere yazıyorum.. bakmakla yukumlu olduğu kişileri (sayı değişebileceği için başka bir tabloya atmaya calışıyorum) bir grid ile almaya calışıyorum..
ancak bakmaklayukumlu tablosunda kime ait olduğunu bilmek için bilgino diye bir alanım var. bilgiformu tablosunda bilgino alanı autoinc. yeni kayıt esnasında bakmakla yukumlu tablosuna bu bilgi numarasını nasıl ekleyebilirim.. ya da sorunumu anladıysanız önereceğiniz bir yöntem var mı
saygılaımla, iyi çalışmalar..
İnsanca.... Pek insanca....
Kullanıcı avatarı
berken
Üye
Mesajlar: 208
Kayıt: 07 Ara 2005 04:27
Konum: Van

Mesaj gönderen berken »

bunları yazmayı unuttum. ilgilenen arkadasların bilgisine..
delphi 7 acces ve ado componentlerini kullanıyorum ..
yaptığım şey, stringgrid ile kayıtları (bakmakla yukumlu) alıyorum, bilgiformu nu post ettikten sonra ordaki bilgi numarasi ile stringgrid deki bilgileri ikinci tabloya atıyorum.. yenı kayıt eklerken sorun yok fazla ama , düzenleme ve silme de kafam karıştı nasıl olacak diye
..
İnsanca.... Pek insanca....
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Genelde yapılan şu şekilde oluyor. master -detay


ana table
-----------
idno
adı soyadı


detail
-----------
idno
adı soyadı
masterid

yukarıda id nolar autoinc olacak. Detaile kişi eklerken post etmeden önce ana table daki idno alanını master a atayacaksınız. hepsi bu kadar.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Fikir vermesi açısından kullandığım yöntem şöyle. Kişi ana tablomda sicil, ad, soyad, baba adı .... bilgiler bulunuyor. Bu tabloda sicil pk alan tanımlı. İkinci tablomda ise idno, sicil ve gireceğim ayrıntı bilgileri. Ana tablomu dbeditler ve navigator ile kaydediyorum. Ardından kullanıcı alt kısımda ayrıntı bilgilerini giriyor ve her girişinde ekle butonu ile ayrıntı tablosuna ekliyor. Ayrıntı tablosu idnoyu otomatik veriyor sicil alanını ise ana tablonun ilgili alanından alıyor. Görüntüleme esnasında ise ibdataset leri ilişkili bağlamadan sonra ana bilgiler altında grid içinde ayrıntılı bilgileri alt alta gösterilmiş oluyor.

Ofenx ustamın belirttiği gibi burada dikkat edilmesi gereken şey ilişki kurulacak tablolarda ortak aynı bilgilerin bulunduğu alanların olması id=id, sicil=sicil vs. gibi

Kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
berken
Üye
Mesajlar: 208
Kayıt: 07 Ara 2005 04:27
Konum: Van

Mesaj gönderen berken »

dediğinizi anlıyoru. benim de yapmaya calıştığım hemen hemen aynı ...
master tablesindeki idno yu alıp detay daki masterid ye yazıyorum ...?? post etmeden o değeri nasıl göreceğim peki
İnsanca.... Pek insanca....
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
berken yazdı: master tablesindeki idno yu alıp detay daki masterid ye yazıyorum ...?? post etmeden o değeri nasıl göreceğim peki
master için ibdataset1 , detay için ibdataset2 kullandığınızı varsayalım.

Ibdataset2 nin beforepost una

Kod: Tümünü seç

ibdataset2.fieldbyname('masterno').asinteger:=ibdataset1.fieldbyname('idno').asinteger;
gibi bir şey kullanacaksınız.

Siz tabloları master detay olarak bağladıktan sonra yukarıdaki ile bağlantıyı kurmuş olacaksınız. Yukarıdaki ile ibdataset1 in şu an konumlandığı kişi kim ise onun id sini getirecektir.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
berken
Üye
Mesajlar: 208
Kayıt: 07 Ara 2005 04:27
Konum: Van

Mesaj gönderen berken »

teşekkur ederim..
ben daha ado bileşenleri ile access e bağlanıyorum..
manual olarak nasıl master/detail tanımlayabilrim query lerimi .. vizard ı kullanmak istemiyorum
İnsanca.... Pek insanca....
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

access ile çalışmam olmadı ado kullanarak bağlanma açısından. FB ile ibdataset veya ibquery kullanıyorum. mantık aynıdır sanırım. benim yaptığım şekil şöyle Master ibdatasetin ayarlarını yapıyorum, arkasında detail olacak tablonun ayarlarını yapıyorum her ikiside ilgili tablolarına bağlı, sadece detail olacak ibdataset in selectsql kısmına

Kod: Tümünü seç

select*from tablom where sicil=:sicil 
yazıyorum ve detail ibdatasetin datasource özelliğini master ibdatasetin datasource sine bağlıyorum işlem tamam oluyor.

bu uygulamayı yalnız bilgileri görüntülemede kullanıyorum. Yani görüntülemede ayrı ibdataset kayıt silme veya güncellemede ayrı dataset kullanıyorum.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla