dbisavechanges ve ODBC

Diğer 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ı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

dbisavechanges ve ODBC

Mesaj gönderen mege »

:arrow: DBISaveChanges((DataSet As TBDEDataSet).Handle)

selamlar üstteki satırı hatırlarsınız paradoxda veriyi geçici tablodan direkt olarak gerçek tabloya aktarmak için kullanıyordum.
bikaç gündür interbase ile haşırneşir olmaya başladım. ama interbasede bunu kullanamıyorum. bikaç sitede IBTransaction i write öncelikli yapın diyordu ama öyle bir seçenek göremedim.

ayrıca bir dorum daha olucaktı. firebird sitesinden ODBC driverini indirdim. delphide database kısımnda eklediğim dnsi görüyorum ancak tablo seçmek için tıklayıp şifreyi girdiğimde delphiyi kapatıyor.
ne tarz bir problem olabilir. (son versiyon dll dosyalarını indirdim ve kurdum. helpinde ne yazıkkıi hiçbir açıklama yok.)
( :!: Delphi 5 ,interbase 6.0 kullanıyorum.)

cevaplarıınız için şimdiden teşekkürler.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

IBX Firebird ve Interbase için native erişim sağlar. Sitede IBX ile ilgili birçok makale var. IBX kullanmanızı tavsiye ederim.

IBX'de CommitRetaining komutu paradox'ta yaptığınız komutun benzeri bir işlev yapar. Arama kısmından aratırsanız detaylı bilgilere ulaşabilirsiniz.

Kolay gelsin.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

hızlı cevap yazdığınız için teşekkür ederim. birasdaha kurcalayınca bunu buldum. şu an istediğim gibi bir çalışma var.

procedure TForm1.IBTable1AfterPost(DataSet: TDataSet);
begin
IBTransaction1.CommitRetaining;
end;


esas bulmam gereken sanırım ODBC problemi...
Control Center - ODBC Admin. penceresinde DENEME isimli bir Firebirs/interbase driveri tanımladım. özelliklerini ayarladım ve TEST CONNCETION Yapınca Conncetion Succesfully mesajı aldım.
problem sanırım delphi kısmındamıdır?

ama denemek için datapump'da bu DENEME aliasını seçince bu programda kapanıyor..

konuyla ilgili deneyimi olan varmıdır acaba

(bu ara birkaç saattir eski yazılara bakıyorum, bu siteyi daha önce nasıl görmedim ben diye bir pişmanlık içerisindeyim. mükemmel bir kaynak, vve uzman insanların sohbetlerini okumaya doyum olmuyor. yalakalık olsun diye söylemiyorum :P )
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

dbisavechanges komutu bir BDE komutudur. BDE komutlarını bir database serverda kullanamazsınız. HEr databse serverin bu tür kendine has komutları vardır. Kendi bulduğunuz kod Ib nin kendi kodudur. Bu kodu kullanmak zorundasınız.
Diğer sorunuza gelince NEden ODBC ile bağlanıyorsunuz onu anlamadım. Datapump direk olarak IB ye bağlanır zaten. Veya bağlanmıyorsa BDE üreninde bir IB aliası yaratıp ondan bağlanın. Bildiğim kadarıyla datapump ODBC aliaslarını görmüyor zaten...

Sevgiler.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bu bi denemeydi. programı ODBC üzerinden veritabanına bağlamak daha iyi değilmi? (en azından şimdi paradoxdan başka bir veritabanına geçiş için okadar uğraşıyorum, belki ileride interbasede olmaz mysql kullanalım dicekler. o zaman bi daha hardcode bi ddeğişiklik yapmak gerekecek yeni componentler falan filan)

ayrıca benim programda hız problemim yok. bu durumda tek istediğim değişken veritabannlı olabilmesi isteyen 1500$ harcar isteyen 0$,

(bunlar sadece benim naçizane fikrim. we can discuss it :oops: )
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

100-200 kayıtla çalışacaksanız sorun yok tabii ki ama kayıt sayısı binler seviyesine gelince çok yavaşlarsınız.

Eğer her türlü veritabanında çalışan bir yapı düşünüyorsanız, SQL'den faydalanmalısınız. Yani olayın çoğunu DB tarafında halledip, kod tarafına minimum iş bırakmalısınız. Bu işleri de native bileşenlerle yapmak iyi olacaktır. Mesela IBX gibi.

Bu yapının birkaç faydası daha var. Olayı DB tarafında hallederseniz, bu stored proc'ları php gibi başka dillerle de kullanabilirsiniz. Mesela biz bazı işlemleri web'den php ile yapıyoruz.

Kolay gelsin.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

şu ana kadar 2-3 farklı veritabanı denedim. hepsindede aynı veriyitabanını oluşturdum(bir keyfield, 3 integer 10 string field)
mysql+odbc ile 50000 kayıt falan yaptım, sorgu 1 saniye sürmüyor.
xml tablo ile yaklaşık 60-70000 kayıt yaptım oda aynı şekilde inanılmaz hızlı.(ki bu xml tabloları kullanmak mantıklımı? problem yaratıyormu? tecrübesi olan varmıdır?)

bi interbasei deneyemedim. kendi ib componentleri ile bağlandım ama dediğim gibi belki odbc tarafına kaçsammı diye düşünüyorum..

bu ara veri sayısı pek de az değil ki benim ayda bu kadar kayıt eklemem bile zor.

(NOT : bu mesajı atarken bi kaç kere Invalid_session hatası verip mesajı göndermedi)
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

:idea:

http://www.ibdatabase.com/
http://www.ibdatabase.com/
Gemini InterBase ODBC Driver

bu adreste iyi çalışan bi örnek var ama paralı,, ee her bedava turşu bal gibi olmuyor :lol:
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Nacizane fikrim. Client Server olmayan file based bir sistem (mysql, paradox, access vb...) gercek bir veritabanı karsısında (Oracle, Sybase, MSSQL) bazi testlerde yuksek performans cikarabilir.
Ornek insert testi veya basit sorgular.... Arka arkaya 100 bin kayit insert etmede sanırım hic bir gercek veritabanı mysql veya paradox'dan hızlı insert edemez. (Bu tecrubesel cikarimlarim ve kanaatimdir. Bizzat karsilastirma testleri yapmadim.)

Ama eğer söz konusu olan ciddi bir iş yapmaksa bir firmanın kendisi için onemli olan bilgileri uzerinde calismak ise o zaman daha ciddi testlerden ve de testler de cok onemli degil yasanmıs tecrubelerden hareket etmek lazim.

Bu suna benziyor eger otomobil alacaksaniz dıs tasarımını cok begendiginiz ve muzik sistemini cok begendiginiz bir otomobili almayi dusunebilirsiniz. Ama eger ailecek seyahat edecekseniz sagligi icin endise ediyorsaniz trafik kazalarinin cok oldugu ulkemizde otomobil alirken tasarımına, hakkında yazılına olumlu yazılara ve hosunuza gitmesine degil de guvenlik ozelliklerine bakarsınız fren testine bakarsınız, crash testine bakarsınız. 100 km ile duvara carpinca arac isindeki maketlere ne olduguna bakarsınız.....
Cevapla