fb/ibx ile yapılan prg. ibdatabase sayısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

fb/ibx ile yapılan prg. ibdatabase sayısı

Mesaj gönderen bobasturk »

Merhaba ustalarım,

çok kolay bi soru olduğunu sandığım ve utandığım bi soru sormak istiyorum.

yaptığım çalışmada firebird ve delphi 7 kullanıyorum. 16-17 kadar tablom oldu bunların veri giriş ve sorgulama formlarını oluşturdum kullanmaktayım. sizlerden bişiler öğrendikçe geliştirmeye çalışıyorum.

makale ve ipucu forumunu dolaşırken soru kafama takıldı. uzatmadan soruma geçeyim.

ben formlarımı oluştururken her tablom için oluşturduğum form üzerine ibdatabase bileşeni koyuyorum. her tablo için bi database bileşeni kullanmalımıyım yoksa ana form üzerine bir adet ibdatabase ve bir adet transaction bileşeni koysam ve her tablonun formunu hazırlarken database olarak onu kullansam olurmu?

teşekkür ve saygılarımla
kolaylıklar diliyorum
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Bir tane ana datamodül ün olur ve buradan tek bir ibdatabase ile bağlansan daha iyi olur .
Transaction larda ise her bir tablo için ayrı bir ibtransaction kullanabilirsin, master-detay ilişkili tablolarda ise ilişkide ki bütün tabloları tek bir transaction a bağlayabilirsin.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

oguzozturk74 yazdı:Transaction larda ise her bir tablo için ayrı bir ibtransaction kullanabilirsin,
bu yöntemin avantajı ve dejavantajları nelerdir?

şahsen ben bir tane database ve bir tane de transaction kullanıyorum..
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

bu işin çok çok acemisi olmama rağmen okuduğum makaleler doğrultusunda baktım ki ustalarım vt yolunu text vb yoldan okutma konularında tek bi dbase ve transaction actve ettiklerini görünce bana bu durumun mantıklı olduğunu gördüm. sorgulama alanlarım acemice olduğu için bir formda pek çok ayrı kriterde sorgulama yapıyorum. genel, tarihler arası, tarihler arası ve kirterli gibi çeşitli sorgu yapıyorum ve bunun neticesi sayısı kadar butonum oluyor ama tek bir database tek bir transaction, tek bir ibquery kullanıyorum ve sorun yaşamıyorum.

yinede emin olmak ve ileride sorun yaşamamak için sizlere sorma ihtiyacı duydum ve beni aydınlattığınız için teşekkür ederim.şimdi projeyi bu doğrultuda düzenleyeceğim.

teşekkür ve saygılarımla
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Herbiri için ayrıı Transaction olduğu için kayıt işleme de her bir işlem ayrı Transactionlarda (paketlerde) cereyan eder . Ben bütün formları modal olmadan (Form.Show) göstermeye çalışıyorum , işte burada ayrı Transactionlar işe yarıyor .

Mesela tek Transaction olsa idi iki ayrı formda birinde kayıt eklerken diyelimki post etmeden diğer bir forma geçtik (formlarımız modal değil diye düşünüyoruz.) ve bu ekranda da bir kayıtı güncelledik . Tek bir Transaction da bir sürü kontrol yapmamız gerekirdi , ama her iki ekranda ki farklı iki tabloya farklı Transactionlar atarsak böyle kontrollere de gerek kalmaz .

Diye düşünüyorum .

Zaten ustalarımız da böyle olmasını tavsiyesi ediyor . :wink:
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Dezavantajının olduğunu da sanmıyorum..
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Note:In applications that connect an InterBaseExpress dataset to a client dataset, every query must be in its own transaction. You must use one transaction component for each query component.

bütün sorgulama bileşenleri için tek bir transaction bileşeni kullanın gibi birşey diyor...

TIBTransaction'ın yardım bölümünden...

ben genelde tek transaction kullanıyorum. bu zamana kadar birden fazla transaction kullanmadım. avantajları nedir ne değildir çok kesin bir fikrim yok ama bir yerine onlarca transaction kullanmak ilerde kafa karıştırır diye düşünüyorum...
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Transaction bir işlemler oturumudur.. Bütün yapacağınız işlemler bir tek oturum içinde ise bir transaction bütün işlemleri halledecektir.. Ancak tek bir oturumda halledemeyeceğiniz bir sorunsa o zaman bir başka transaction işlemi başlatabilirsiniz. Bunun bir sakıncası yoktur. Ancak işlemler açısından bir kaç transactionu birden kontrol etmek çok zordur. Unutmayalım ki hatasız kod yazılamıyor. Mutlaka bir şeyler eksik veya kusurlu kalacaktır.

Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

transaction konusunda oguz arkadasım cok haklı
hatta ben tek tip ortak transaction kullandıgım bir programımda yanlıs kullandıgımı anladım, aslolan ibexpertin editoru gibi her form her islem ayrı transaction seklinde yurutulmeli
birbirinden bagımsız olmalı
ayıca bir transaction da tabloya eklediniz sildiniz degistirdiniz aynı transaction ile detail tabloya kayıt eklediniz cıkarttınız gibi bir yıgın islem yaptınız
ama iptal etmek istediniz butun bu islemleri
commit yerine roolback demek yeterli oluyor.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Bende IBX e geçtiğimden beri birden fazla transaction kullanıyorum, Şöyleki Gökmen'in söylediklerini biraz daha detaylandırmış olayım.
Her form olarak kendinizi şartlandırmayın, Bir işlem bloğu olarak düşünün. son yazdığım programlarda Mal giriş ve çıkış fişlerine Fişi için, seçilen kişinin extre sinide aynı pencerede görelim demeleri üzerine Cari extre yide aynı formda diğer bir tab a ekledim.
Burada Fiş için, Master ve detail ayrıcada exte de gösterim için (readonly) master ve detail queryler var. Fişi için olan Yani kayıt yapılacak master ve Detail Queryleri aynı transaction a bağladım, sebebi şu, detail kayıt toplamlarını mastera da eklemem gerek, ayrıca kullanıcı yapığı işlemleri son anda iptal de edebilr, yada 2-3 satır kayıt yazarken sistem göçtü kitlendi yada elektrik kesildi diyelim, bilgi bütünlüğü bozulmaması için hepsi bir paket yani bir transaction altında topladım. Bu durumda yani transaction db ye eklenir yada eklenmez dolayısıylada bilgi bütünlüğü korunmuş olur.
Ayrıca exre için gerekli query leri de Farklı bir ve aynı transaction a bağladım. Yukarıda yazdığım sebep yüzünden ve erişim kolaylığı yüzünden. Bu örneği sadece her forma bir transaction diye şartlandırmayın kendinizi diye verdim, esas olan bilgi grubuplarını toparlıyabilmek, bazı yerlerde 3 yada 4 query yi tek bir transaction ada bağladığım oldu. Hatta yukarıda verdiğim örnekte master ve detail query lerin CachedUpdate özelliği Açık olarak kullanıyorum.
Bir dip not, IBX kullanıyorsanız, Transaction ın adını yazmak yerine, QUE_MalCikis.Transaction.Commi....... şeklinde alıştırırsanız kendinizi bence daha rahat edersiniz.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla