tablonun ekleme modunu değiştirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
echobility
Üye
Mesajlar: 14
Kayıt: 17 Eki 2006 02:11

tablonun ekleme modunu değiştirmek

Mesaj gönderen echobility »

tabloyu ekleme modunda açtıktan sonra erhangi bir kotrol ile durumunu değiştirebilirmiyim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Delphi Help; Dataset Statehk. yazdı:type TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc, dsOpening);
Tabloyu açtığınızda dsBrowse modunda olur zaten.

- 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...');
Resim
Resim ....Resim
echobility
Üye
Mesajlar: 14
Kayıt: 17 Eki 2006 02:11

Mesaj gönderen echobility »

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
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Ş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.
Resim
Resim ....Resim
Cevapla