fb/ibx ile yapılan prg. ibdatabase sayısı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
fb/ibx ile yapılan prg. ibdatabase sayısı
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
ç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
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
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
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
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
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 .
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 .

-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
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...
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...
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..
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
İ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
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.
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
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.
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!