Otomatik Veritabanı Oluşturma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bnyamin
Üye
Mesajlar: 16
Kayıt: 01 Mar 2019 12:55

Otomatik Veritabanı Oluşturma

Mesaj gönderen bnyamin »

Merhaba arkadaşlar delphi 7 de bir program yazdım firebird veritabanı kullanıyorum.Daha önce görmüş olduğum bir programdan esinlenerek kullanıcı giriş ekranına girişden ziyade birde veritabanı oluşturma ve bağlanma bölümü koydum ama sadece koymakla yetinebildim çümkü çok aramama rağmen bana yardımcı olacak kodu bulamadım.Kısacası sizden istediğim giriş ekranının veri tabanı bölümüne geçtiğimde edit nesnesine girilen benim istediğim bir isimle butona bastığımda veritabanı otomatik oluşturulsun ve bağlantısı yapılsın. bunu nasıl yapabilirim buna benzer örnek kodlarınız ya da projeniz varsa benimle paylaşırsanız çok mutlu olurum. Yardımlarınız için şimdiden teşekkür ediyorum.

ertank
Üye
Mesajlar: 1326
Kayıt: 12 Eyl 2015 12:45

Re: Otomatik Veritabanı Oluşturma

Mesaj gönderen ertank »

Merhaba,

Öncelikle mümkün ise Delphi 10.3.3 geçişi yapın. Yıllık 5000 USD veya altında kazancınız var ise ücretsiz lisans alıp kullanabiliyorsunuz.

Sorunuzu cevaplayabilmek için kullandığınız veritabanı erişim bileşenlerini bildirmeniz mümkün müdür?

bnyamin
Üye
Mesajlar: 16
Kayıt: 01 Mar 2019 12:55

Re: Otomatik Veritabanı Oluşturma

Mesaj gönderen bnyamin »

Cevabınız için teşekkür ederim delphi 7 kullanmamın sebebi raporlama aracının bulunması ama bilgisayarımda 10.3 rio da yüklü veritabanına adoconnection ve adoquery ile erişiyorum tavsiyeniz doğrultusunda başka erişim araçlarınıda kullanabilirim.

ertank
Üye
Mesajlar: 1326
Kayıt: 12 Eyl 2015 12:45

Re: Otomatik Veritabanı Oluşturma

Mesaj gönderen ertank »

ODBC üzerinden FirebirdSQL veritabanına erişmek yerine bu veritabanı için geliştirilmiş FIBPlus bileşenlerini kullanabilirsiniz.

Veritabanına özel tasarlanmış bileşen kullanmanın iki avantajı olacaktır. İlk avantaj performans, ikinci avantaj ise veritabanına özel EVENTS gibi özellikleri kullanmanız müknün olacaktır.

Ancak FIBPlus bileşenleri artık geliştirilmiyor ve FirebirdSQL 3.0 desteği bulunmamakta (FirebirdSQL 3.0 ile gelen BOOLEAN veri türü ve bazı diğer yeni özellikler desteklenmiyor) bu anlamda mümkün ise UniDAC, IBDAC veya FireDAC gibi geliştirilmesi devam eden bir bileşen seti tercih edebilirsiniz.

Ancak Delphi 7 için sadece FIBPlus, UniDAC, IBDAC uyumlu olacaktır. FireDAC daha yeni sürümler ile desteği gelen bir bileşen seti.
FIBPlus: https://github.com/madorin/fibplus
UniDAC: https://www.devart.com/dac.html
IBDAC: https://www.devart.com/ibdac/

FIBPlus ile kod kullanarak veritabanı oluşturmak için aşağıdaki gibi bir yöntem izleyebilirsiniz:

Kod: Tümünü seç

  // Normalde aşağıdaki satırı tasarım zamanında yapabilirsiniz. Kod olarak eksik olmaması adına ekledim
  pFIBDatabase1.DefaultTransaction := pFIBTransaction1;
  
  // Sadece uygulama ilk çaılışında bir defa ayarlanması yeterli
  // 64Bit işletim sisteminde 32Bit uygulama 32Bit client DLL kullanmalıdır.
  pFIBDatabase1.LibraryName := 'C:\Program Files\Firebird\Firebird_2_5\WOW64\fbclient.dll';

  // Veritabanını kod kullanarak oluşturmak için gerekli ayarlar
  pFIBDatabase1.DBParams.Clear();
  pFIBDatabase1.DBParams.Add('USER ''SYSDBA'' PASSWORD ''masterkey'''); // kullanıcı adı ve şifre burada veriliyor.
  pFIBDatabase1.DBParams.Add('PAGE_SIZE = 16384');
  pFIBDatabase1.DBParams.Add('DEFAULT CHARACTER SET WIN1254');  // Türkçe karakter desteği için WIN1254 kullanılmalı
  pFIBDatabase1.DBName := 'localhost:C:\DB\TEST.fdb';  // ilgili sunucu (localhost) ve oluşturulacak veritabanı adı tam yol olarak belirtilmeli
  pFIBDatabase1.SQLDialect := 3;

  pFIBDatabase1.CreateDatabase(); // Burada artık veritabanı oluşturuluyor
UniDAC ile kod kullanarak veritabanı oluşturmak için aşağıdaki gibi bir yöntem izleyebilirsiniz (IBDAC içinde bileşenler değişecek ancak kod aynı olacaktır):

Kod: Tümünü seç

  UniConnection1.Close();
  UniConnection1.ProviderName := 'Interbase';
  // 64Bit işletim sisteminde 32Bit uygulama 32Bit client DLL kullanmalıdır.
  UniConnection1.SpecificOptions.Values['ClientLibrary'] := 'C:\Program Files\Firebird\Firebird_2_5\WOW64\fbclient.dll';

  UniScript1.SQL.Clear();
  UniScript1.SQL.Add('CREATE DATABASE ''localhost:C:\DB\test_unidac.fdb'''); // ilgili sunucu (localhost) ve oluşturulacak veritabanı adı tam yol olarak belirtilmeli
  UniScript1.SQL.Add('USER ''SYSDBA'' PASSWORD ''masterkey''');
  UniScript1.SQL.Add('PAGE_SIZE 16384');
  UniScript1.SQL.Add('DEFAULT CHARACTER SET WIN1254'); // Türkçe karakter desteği için WIN1254 kullanılmalı
  UniScript1.NoPreconnect := True;
  UniScript1.Execute(); // Burada artık veritabanı oluşturuluyor
Veritabanı oluşturulduktan sonra her zaman yaptığınız gibi bağlantı sağlayabilirsiniz.

bnyamin
Üye
Mesajlar: 16
Kayıt: 01 Mar 2019 12:55

Re: Otomatik Veritabanı Oluşturma

Mesaj gönderen bnyamin »

Teşekkür ederim Sayın Ertank hocam yardımlarınız için.

Cevapla