2016-12-01 44 views
1

澄清創建Firebird數據庫
大衛認爲這是重複的。我意識到另一個問題,我指的是那裏的答案。它只是不能解決我的問題;例如我在對象檢查器中看不到CreateDatabase屬性。難點在Delphi

我認識了德爾福,但是這是第一次我在一個項目需要一個數據庫。使用Delphi XE8。

this answer to another question我發現了一個腳本來創建一個數據庫,這是我逐字使用:

SET SQL DIALECT 3; 
SET NAMES UTF8; 
SET CLIENTLIB 'C:\fb25\bin\fbclient.dll'; 
CREATE DATABASE 'D:\MyProject.fdb' 
    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^ 

,但我有與FDConnection1問題。在其parameters我輸入了一個數據庫文件名,但我沒有看到CreateDatabase屬性說答案提到。當我執行

FDScript1.ExecuteAll;

沒有任何反應。

如何創建我的數據庫?我在哪裏可以設置CreateDatabase=yes

編輯1:我試過
我創建了一個帶有TFDScript(FDScript1)和TFDConnection(FDConnection1)一個VCL應用。我在FDScript1.SQLScripts屬性中輸入了上述腳本,並將FDConnection1分配給了Connection屬性。
對於FDConnection1我設置DriverName爲「FB」,進入了一個ConnectionNameparams.database進入了一個文件名(完整路徑)。

大衛指出,我的假設是CreateDatabase將是一個屬性是錯誤的。這是否應該在腳本中? (它已經說過「CREATE DATABASE」。)

+0

可能的重複[在Firebird中使用FireDac(Delphi)創建數據庫](http://stackoverflow.com/questions/21312811/creating-a-database-in-firebird-using-firedac-delphi) –

+0

這是您所連接的問題的扣籃扣籃。閱讀答案。它沒有建議你使用TFDConnection來執行SQL。所以仔細閱讀答案。按照鏈接。閱讀它們。做它說的。你需要密切關注所寫的內容。 –

+0

在愚蠢的答案不談論對象督察,除非我誤解它。你能指出在Object Inspector中描述'TFDConnection'的設置屬性的部分嗎?我所看到的是關於使用'TFDScript'的信息。如果您有關於如何設置「TFDScript」的「連接」屬性的信息,請分享。如果問題是要求解決您的具體嘗試按照說明進行操作,提供你的步驟具體細節至今。 –

回答

0

CreateDatabase連接定義參數已被替換爲OpenMode參數。我倒是建議你的情況下,它設置爲OpenOrCreate(這將創建數據庫,如果不存在,或者利用現有的一個):

... 
FDConnection1.Params.Add('OpenMode=OpenOrCreate'); 
FDConnection1.Connected := True; 

對於FireDAC附帶德爾福XE7或下方,使用所提CreateDatabase參數。