在Delphi中创建Firebird数据库的困难

时间:2016-12-01 07:32:26

标签: database delphi delphi-xe8 firedac

澄清
大卫认为这是重复的。我知道其他问题,我指的是那里的答案。它只是没有解决我的问题;例如,我没有在Object Inspector中看到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”,输入ConnectionName并在params.database中输入文件名(完整路径)。

大卫指出我认为CreateDatabase属于财产是错误的。这应该在脚本中吗? (它确实已经说过“创建数据库”。)

1 个答案:

答案 0 :(得分:0)

CreateDatabase 连接定义参数已被OpenMode参数替换。我会建议你在你的情况下将它设置为 OpenOrCreate (如果不存在则创建数据库,或者使用现有的数据库):

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

对于Delphi XE7或更低版​​本附带的FireDAC,请使用上述CreateDatabase参数。