2016-12-01 71 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参数。