ustalar ibtable ile ilgili yardım ltf

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

ustalar ibtable ile ilgili yardım ltf

Mesaj gönderen Vital »

merhaba ustalar firebird de bocaliyorum yeni gectim
yardimlariniz icin tskler bu konuyu goren arkadaslar yarına yapmam lazim asagidakini simdiden tskler

firebird 1.5 ve ibtable bilesenleri ile delphi 7
simdi arkadaslar 2 adet ibtable var ana formda eger dbcheckbox isaretli ise ibtable2 ye otomatik kaydedecek dbcheckbox isaretli degilse kayit yapilmayacak.isaretli oldugu zaman diger tabloya yapılan kayıt ana tablodan silindiginde veya dbcheckbox un isareti kaldirildiginda silinecek guncellenecek vs.isin icinden cikamadim bir aceminin anlayabilecegi yolları gosterirseniz sevinirim.

iki table da da autoinc alan var arkadaslar table2 deki auto incin table1 deki kayitta bi sorun cikarirmi?

tekrar teskler
Garibanus
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

Aramıza hoşgeldiniz ama

1. forum kurallarını okuyun.(sorununuzun aciliyeti sizin sorununuz)
2. Bir delphi kitabı edinin..

Kod: Tümünü seç

If checkbox1.checked then ibtable2.post else ibtable2.cancel;
mantık bu. siz başlayın ilerisine gene bakarız.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Mesaj gönderen Vital »

ustadim oncelikle cevabin icin tskler

cevabi vermissin ama igneleme misali

neyse sagolasin yinede delphi kitabiyla pek alakasi yok cunku fb de yeniyim ibtable ibeventin olay yakalama ozelligi vesaire onlar ile ilgili benim orneklere nasil bagdastirmaya calisma meselesi bu neyse sagolasin yinede.
Garibanus
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Mesaj gönderen Vital »

ikutluay kardesim senin dedigin tam olarak istedigimi karsilamiyor

yani ben ana formda(table1) dbcheckbox isaretliyse verileri table2ye de atsin fakat table1 den silme vs. yaptigimda table2 den de silsin table2 de auto inc alanim vs de olacak eger dbcheckbox checked degilse bir sey yapmasin ve table1 de check isaretini kaldirdiginda table2 deki veriler silinsin istiyorum.master detail gibi birsey ama tam cozemedim.auto inclerde hata veriyor.

tekrar tskler
Garibanus
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Siz aslında FOREIGN KEY istiyorsunuz ama eğer işaret varsa FOREIGN KEY şeklinde çalışsın, eğer o işaret yoksa çalışmasın istiyorsunuz.

Şimdi Ana Tablonuzun AfterInsert ve AfterDelete eventlerine kendiniz kod yazarak çözeceksiniz bu işi ve MASTER DETAIL bağ kurmayacaksınız. Bütün diğer işlemleri manuel kendiniz halletmeniz gerekecek.

AfterDelete Eventinde, kontrolleri kendiniz yapacaksınız. Yani,

Kod: Tümünü seç


  if CheckBox.Value = Checked then
  begin
    Table2.Delete ;
  end ;

gibi eventlerine hem Insert hem de Delete eventlerine bunun gibi kodlar yazmanız gerekecek.

Autoinc alan için söylediklerinizi anlayamadım, FB'de tanımladığınız tablonun herhangi bir fieldında AutoInc bir değer mi var? Bunu GENERATOR ile mi hallettiniz? Orayı biraz daha acar mısınız.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Vital yazdı:ustadim oncelikle cevabin icin tskler

cevabi vermissin ama igneleme misali

neyse sagolasin yinede delphi kitabiyla pek alakasi yok cunku fb de yeniyim ibtable ibeventin olay yakalama ozelligi vesaire onlar ile ilgili benim orneklere nasil bagdastirmaya calisma meselesi bu neyse sagolasin yinede.
Kuris usta yanıtlamış sorunuzu ama benim ki iğneleme niyeti değildi. sadece bazı arkadaşlar burayı "mesaj-at-ödevini-yapalım.com" sanıyor onun için bişiler yazdım.

Önerim gene de doğru çünkü forumdan fath in yazdıgı FB kitabı cidden çok iyi.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Mesaj gönderen Vital »

ilginize tskler arkadaslar


evet kuri hocam

table1de table2de auto inc alan var (foreign key de var ) bunun bir etkisi oluır mu ve master detail istememin sebebi birinci table1 kayit girilirken checkbox isaretli ise table2 ye de kayit girecek ana formdan o kaydi sildiginde table2 de de silinecek ben bu iki tabloyu baglamak istiyorum.hocam eger senin dedigin gibi table1 in afterdelete olayina yazacak olursam table1deki kaydi table2 ile nasil iliskilendircem ve table1 de hangi kaydi sectigini table 2 de hangi kayita gitmesi gerektigini(eger checki isaretleyip kayit girdiyse ) nasil bilicem benim derdim bu yani master detail kıullanmasam bunu nasil yapicam veya kullansam cozum olurmu?

ve ikutluay hocam yukariyi okursan delphi kitabi demistin FB degil ve FB yi ne kadarkurcalasamda metod eksikligi oldugu icin bir yerde tikaniyor insan ayrica o dusundugun odev davasi degil bizimkisi.neyse sagolasin

tekrar tskler .
Garibanus
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Table1'in AfterScroll'una Table2'yi kapatıp açan bir Event yazacaksın. Ama bu event içinde Table2'yi filtreleyerek getirmen gerekiyor (Normalde Master-Detail olarak bağlanmış tablelar Delphi tarafından otomatik olarak kapatılıp açıp filtreleniliyor) Bütün bu işlemleri manuel sen yapmalısın.

Table2'nin BeforePost Eventinde ise, Table1'in PK alanının değerini aynen Table2'de bir Field'a yazman gerekiyor. Yani normal bir master detail ilişkide olması gereken işlemleri manuel olarak senin yapman gerekiyor.

Neden böyle bir şeye giriştin anlayamadım doğrusu. Bence yapmak istediğin hedef işin ne olduğunu söylersen daha farklı bir metod uygulanabilir.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla