tablonun ekleme modunu değiştirmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 14
- Kayıt: 17 Eki 2006 02:11
tablonun ekleme modunu değiştirmek
tabloyu ekleme modunda açtıktan sonra erhangi bir kotrol ile durumunu değiştirebilirmiyim
Tabloyu açtığınızda dsBrowse modunda olur zaten.Delphi Help; Dataset Statehk. yazdı:type TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc, dsOpening);
- Siz Append komutu ile ekleme moduna (dsInsert) geçersiniz. bunun modunu değiştirmek demek en fazla olasa olsa dsEdit mode demektir ki olmayan kaydı edit'e neden dönüştüreceksinizi ki ?
- Soruda gizli kalmış bir kriter var biraz daha açar mısınız ?
- Soruyorsanız ki "bir tablonun durumu nedir öğrenebilir miyim?" o zaman cevabımız
Kod: Tümünü seç
if ( Table1.State = dsEdit ) or ( Table1.State = dsInsert ) then ShowMessage( 'Kayıt girişi yapılıyor...');
-
- Üye
- Mesajlar: 14
- Kayıt: 17 Eki 2006 02:11
musteri ve musteri_alt diye master detail tablom var.musteri formumda musteri bilgileri ile ilgili bilgiler birde musteri_alt tablosuna bağlı bir dbgrid var.musteri formunda musteri_alt bilgilerini gireceğim musteri alt butonu var.
musteri bilgilerini girdikten sonra musteri_alt butonuna basarak musteri alt bilgilerini girdiğimde tamam dediğim zaman musteri formundaki musteri_alt giridine eklemsini istiyorum.ama musteri talosu append modunda açıldığı için bunu gerçekleştiremiyorum.bunu nasıl yapacağım
musteri bilgilerini girdikten sonra musteri_alt butonuna basarak musteri alt bilgilerini girdiğimde tamam dediğim zaman musteri formundaki musteri_alt giridine eklemsini istiyorum.ama musteri talosu append modunda açıldığı için bunu gerçekleştiremiyorum.bunu nasıl yapacağım
Şimdi oldu...
- Master / Detail bağlantı için key'in henüz üretilmemesi kaynaklı bir sorun...
- Veritabanı tipini de verseydiniz ona göre cevap verirdik. Firebird / Interbase ise GENERATOR ile otomatik artan rakam oluşturulduğunu varsayarsak buradan son değeri bulup ona 1 eklediğinde çıkan rakamı peşin olarak verebilirsin derdik.
- Birde kaydı nasıl yaptığınız önemli. SQL ile "INSERT INTO" kullanarak mı, yoksa DataSet ile Append / Edit -> POST ile mi ? İlk sorunuzda bunu Append/Edit -> POst olduğunu biliyorum. Projeniz içerisinde başka yerlede başka metod olmadığını değerlendirerek yazıyorum.
- ADO kullanıyorsanız, müşteri bilgilerini girdiğinizde musteri_alt butonuna bastığınızda Müşteri Tablosunu POST edip AUTOINC alan üretilmesini sağlamak zorundasınız. İlerleyen adımlarda İptal basılırsa bu kaydı silersiniz.
- müşteri_alt tablosuna giriş yapıldıktan sonra ise bir önceki ekranda müşteri tablosunun aktif kaydı yani giriş yaptığınız son kaydın BAĞLANTI ANAHTARI olarak kullandığınız alandan aktif nunarayı alıp, Müşteri_Alt tablosunun OnBeforPost olayında aynı türden bağlantı anahtar alanına eşitlemeniz lazım.
- Master / Detail bağlantı için key'in henüz üretilmemesi kaynaklı bir sorun...
- Veritabanı tipini de verseydiniz ona göre cevap verirdik. Firebird / Interbase ise GENERATOR ile otomatik artan rakam oluşturulduğunu varsayarsak buradan son değeri bulup ona 1 eklediğinde çıkan rakamı peşin olarak verebilirsin derdik.
- Birde kaydı nasıl yaptığınız önemli. SQL ile "INSERT INTO" kullanarak mı, yoksa DataSet ile Append / Edit -> POST ile mi ? İlk sorunuzda bunu Append/Edit -> POst olduğunu biliyorum. Projeniz içerisinde başka yerlede başka metod olmadığını değerlendirerek yazıyorum.
- ADO kullanıyorsanız, müşteri bilgilerini girdiğinizde musteri_alt butonuna bastığınızda Müşteri Tablosunu POST edip AUTOINC alan üretilmesini sağlamak zorundasınız. İlerleyen adımlarda İptal basılırsa bu kaydı silersiniz.
- müşteri_alt tablosuna giriş yapıldıktan sonra ise bir önceki ekranda müşteri tablosunun aktif kaydı yani giriş yaptığınız son kaydın BAĞLANTI ANAHTARI olarak kullandığınız alandan aktif nunarayı alıp, Müşteri_Alt tablosunun OnBeforPost olayında aynı türden bağlantı anahtar alanına eşitlemeniz lazım.