Firebird IBTable Refresh ?

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
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Firebird IBTable Refresh ?

Mesaj gönderen hi_selamlar »

Selamunaleyküm arkadaşlar.

sabahtan beri araştırıyorum arıyorum fakat bir türlü aradığımı bulamadım.. yoo yoo kesin bende bi sorun var... :(

basit bir uygulama yapıyorum. Master-Detail.

ANA_TABLO
----------------------
AUTO_NO - AUTOINC - PK
TARIH - DATE
BELGE NO - VARCHAR(10)


DETAY TABLO
----------------------
AUTO_NO - AUTOINC - PK
ANATABLO_BAGLANTI - INTEGER - FK
KODU - VARCHAR(10)
ADI - VARCHAR(50)


veri tabanım hazır.

delphi7 ile master-detail bağlantı yapıyorum. ben IBDataset yerine
IBTable kullanıyorum.
Master-Detail ayarılarını yapıyorum.

Her Table için ayrı ayrı Transaction tanımlıyorum. (Read-Committed.)

cxGrid kullanıyorum. Verileri girerken;

Ayrı ayrı Transaction tanımlı iken;

1. FOREIGN KEY hatası veriyor ve detay kayıt giremiyorum.

ama

her iki (Ana-Detay) tabloları aynı Transactiona bağladığımda sorun çıkmıyor fakat Transaction.Commitretaining; yapınca sorun yok. ama
RollBackRetaining; yapınca cxGrid üzerinde bilgiler aynen görünüyor. Formu kapatıp açtığımda bilgilerin kayıt edilmediğini görüyorum.

ben kayıtların anında görünmesi için ne yapmalıyım.

IBTable leri açıp kapatmadan yapmak istiyorum. Bu mümkün mü?

Transactionları nasıl kullanmam lazım ki sorun çıkmasın. (Detay kayıt esnasında)

lütfen bi el etın valla kafayı yemek üzereyim.

Selamunaleyküm. :?
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

forumda transaction kullanımı hakkında pek çok konu konuşuldu. Öncelikle ibdataset kullanmaya bak. ustaların bu konuda tavsiyeleridir.

rollback yaptığın için verilerin kaydedilmemiş olması normal rollback yaparak geri alıyorsun.

ilk sorununda transactionlar ayrı olunca kayı esnasında detay tablo bağlantı için gerekli alan verisini alamadığından hata veriyordur. ana tabloda girdiğin ve fk için kullandığın alanın verisini detay tablonun kayıt yaptığı anda kullanmasını ve kaydetmesini sağlaman gerekiyor gibi düşünü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
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bence en kolayı aramak :idea:
viewtopic.php?t=12515
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

Selamunaleyküm..

hocalarım, aramalarda ana-detay için ayrı ayrı transaction yapılması önerilmiş. bende aynısını yaptım fakat bir türlü olmadı. ana tabloya verileri giriyorum sorun yok. ama detay tabloya veri girince hata veriyor ve giriş izni alamıyorum.

ama ana ve detay tablonun aynı transaction a bağladığımda soun çıkmıyor. bunu nasıl aşmam lazım. lütfen .

bir de veri tabanını açıp kapamadan rollback veya commit işlemini nasıl yapabilirim.

ana-detay tabloyu aynı transactiona bağlamanın ne gibi sorunları veya avantajları olabilir.

teşekkürler.


Selamunaleyküm..
Herkes cahildir, bazi konularda.
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Mesaj gönderen Akin_Delphi »

hi_selamlar yazdı:aramalarda ana-detay için ayrı ayrı transaction yapılması önerilmiş. bende aynısını yaptım fakat bir türlü olmadı. ana tabloya verileri giriyorum sorun yok. ama detay tabloya veri girince hata veriyor ve giriş izni alamıyorum.

ama ana ve detay tablonun aynı transaction a bağladığımda soun çıkmıyor. bunu nasıl aşmam lazım. lütfen .
a.s.
Arkadaşım, transaction "işlem" demektir ve transaction'lar birbirlerini göremezler. (Gerçi belirli ayarlar yapıldığında pessimistic locking - kötümser kilitleme özelliğiyle birbirlerini bir nebze görmeleri sağlanabiliyor ancak pek tavsiye edilmez.) Yani, arama yaptığında karşına çıkan şey nedir bilmiyorum ancak ana tabloyu bir transaction'a, detay tabloları da başka bir transaction'a koyarsan bu transactionlar basitçe birbirlerini göremezler.
hi_selamlar yazdı:bir de veri tabanını açıp kapamadan rollback veya commit işlemini nasıl yapabilirim.
Forum'da CommitRetaining kelimelerini araştırınız. Oldukça bol bilgi var. Saygılarımla ve Başarılar.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

Selamunaleyküm...

arkadaşlar benim öğrenmek istediğim;

ana-detay için ayrı ayrı transaction tanımlıyorum. detay tabloya ana tablodaki sıra numarasını atmam gerekiyor. (fatura modülü için.)

fakat ana abloyu commit etmeden detay tabloya ana tablodaki sıra numarasını yazamıyorum. sorun bu. bu sorunu nasıl aşabilirim.



S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Bu rakamlara new.alan ismi ile ulaşılabilyordu. Ama ya siz post etmeden başkası post ederse numara ona geçer. Bu yüzden boş bir kayıtı post edip edit e alırsanız bu defa detailden o numarayı alabilirsiniz.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Cevapla