Delphi Can
Firebird Database Oluşturma - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Veri Tabanı (http://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: FireBird (http://www.delphican.com/forumdisplay.php?fid=13)
+--- Konu Başlığı: Firebird Database Oluşturma (/showthread.php?tid=3550)



Firebird Database Oluşturma - SercanTEK - 15-04-2019

Merhaba Arkadaşlar,

Basit anlamda "Otopark Abone Cari takibi" için bir uygulama yazdım. Veritabanı olarak  "Firebird 2.5.8" kullandım. "SQL manager 2005 for interbase and Firebird" ile veritabanını oluşturdum. İDE olarak Delphi 10.3 Community Edition ile yazdım ve veritabanına FireDAC kullanarak bağlandım.

Programın kullanacak kişiye programı verdiğimde, program ilk açılışta veritabanı dosyası yoksa kendisinin oluşturmasını istiyorum. Mevcut veritabanını boş iken SQL haline alıp tekrar oluşturmam mümkün mü ? Veritabanı konusunda tecrübem yok. Eskiden IBExtract vardı diye hatırlıyorum. FireDAC tarafını ilk defa kullanıyorum. Çözüm önerilerinizi bekliyorum.


Firebird Database Oluşturma - esistem - 15-04-2019

Selam,
Kod ile yapmak yerine, bir veritabanını metadata olarak backup alıp, gerektiğinde restore yapabilirsiniz.


Cvp: Firebird Database Oluşturma - SercanTEK - 15-04-2019

(15-04-2019, Saat: 10:13)esistem Adlı Kullanıcıdan Alıntı: Selam,
Kod ile yapmak yerine, bir veritabanını metadata olarak backup alıp, gerektiğinde restore yapabilirsiniz.

Ornek var mi hocam ?


Cvp: Firebird Database Oluşturma - esistem - 15-04-2019

(15-04-2019, Saat: 11:03)SercanTEK Adlı Kullanıcıdan Alıntı:
(15-04-2019, Saat: 10:13)esistem Adlı Kullanıcıdan Alıntı: Selam,
Kod ile yapmak yerine, bir veritabanını metadata olarak backup alıp, gerektiğinde restore yapabilirsiniz.

Ornek var mi hocam ?

/////////////////// BACKUP
 cmd := ANA.AknConfig.EXEKLASOR+'data\gbak.exe';
 Stream := TMemoryStream.Create;
 try
 Application.ProcessMessages;
   ANA.AknConfig.ReadOutputFromExternalProcess('',
     cmd +
     ' -b '+SERVIP+':'+VYOLU+ANA.QYILDBADI.AsString+'.FDB '+ANA.AknConfig.EXEKLASOR+'data\yyil.fbk -user sysdba -pass masterkey',
     Stream, Memo2);
 finally
   Stream.Free;
Memo2.Lines.Add(INTTOSTR(ANA.QYILCALISMAYILI.AsInteger)+' Çalışma yılının kopyası alındı...');
 end;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// RESTORE
 cmd := ANA.AknConfig.EXEKLASOR+'data\gbak.exe';
 Stream := TMemoryStream.Create;
 try
 Application.ProcessMessages;
   ANA.AknConfig.ReadOutputFromExternalProcess('',
     cmd +
     ' -r o -v -user sysdba -pass masterkey '+ANA.AknConfig.EXEKLASOR+'data\yyil.fbk '+SERVIP+':'+VYOLU+'ETICARI_DB_'+FLOATTOSTR(YYIL.Value)+'.FDB',
     Stream, Memo2);
 finally
   Stream.Free;
Memo2.Lines.Add(FLOATTOSTR(YYIL.Value)+' Çalışma yılı oluşturuldu...');
 end;

GBAK ile yukarıdaki şekilde backup alıp restore yapıyorum. Sizde önce metadata yı backup alıp exe ye gömüp, eğer veritabanı yok ise ordan restore yapabilirsiniz sanırım. Bu arada AknConfig bir arkadaşımın yazdığı içinde birçok function barındıran yardımcı bir component, onu kaale almayın, siz shellexecute ile yapabilirsiniz. 

Ben ETICARI_DB_<CalismaYili>.FDB şeklinde her yıl için ayrı veritabanları oluşturuyorum.


Firebird Database Oluşturma - SercanTEK - 15-04-2019

Teşekkürler. Değerlendireceğim.