簡體   English   中英

使用 FireDac (Delphi) 在 Firebird 中創建數據庫

[英]Creating a database in Firebird using FireDac (Delphi)

我最近從 AnyDac 更改為 FireDac (8.0.5.3365)。 我們正在運行 Delphi 2006。

當我使用此組件的 AnyDac 版本時,我可以通過執行以下操作來創建一個新數據庫。

設置我的連接

fConnection.LoginPrompt := false;
fConnection.ResourceOptions.SilentMode := true;

fConnection.Params.Clear;
fConnection.Params.Add(Format('DriverID=%s',          ['IB']));
fConnection.Params.Add(Format('Database=%s',          [fConnectionInfo.xDatabase]));
fConnection.Params.Add(Format('CharacterSet=%s',      ['UTF8']));
fConnection.Params.Add(Format('user_name=%s',         [fConnectionInfo.xUserName]));
fConnection.Params.Add(Format('password=%s',          [fConnectionInfo.xPassword]));
fConnection.Params.Add(Format('ExtendedMetadata=%s',  ['True']));
fConnection.Params.Add(Format('CreateDatabase=%s',    ['Yes']));
fConnection.Params.Add(Format('Protocol=%s',          ['Local']))

//database path = C:\Users\LoginName\AppData\Local\AppName\TestDB.FDB

打開和關閉連接

fConnection.Open;
fConnection.Close;

然后我可以在現有數據庫上運行我的創建表 sql 腳本。

但是現在當我使用 FireDac 版本執行此操作時,Open 命令會引發 fbe_unavailable 錯誤,就好像我沒有指定 CreateDatabase 參數一樣。

我應該以不同的方式做這件事嗎?

謝謝你的時間。

科里。

你在這里有一個完整的例子http://docwiki.embarcadero.com/RADStudio/Rio/en/Executing_SQL_Scripts_%28FireDAC%29

例如,以下 Firebird 腳本創建了一個數據庫,並且可以使用 TFDScript 執行:

SET SQL DIALECT 3;
SET NAMES UTF8;
SET CLIENTLIB 'C:\fb25\bin\fbclient.dll';
CREATE DATABASE 'E:\Test2.ib'
  USER 'sysdba' PASSWORD 'masterkey'
  PAGE_SIZE 16384
  DEFAULT CHARACTER SET NONE;

SET TERM ^ ;

CREATE PROCEDURE MY_PROC RETURNS (aParam INTEGER) AS
BEGIN
  aParam = 10;
END^

除了其他必需的參數之外,您還應該使用 CreateDatabase=Yes 連接定義參數: http : //docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Firebird_(FireDAC)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM