澄清
大卫认为这是重复的。我知道其他问题,我指的是那里的答案。它只是没有解决我的问题;例如,我没有在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
属于财产是错误的。这应该在脚本中吗? (它确实已经说过“创建数据库”。)
答案 0 :(得分:0)
CreateDatabase 连接定义参数已被OpenMode参数替换。我会建议你在你的情况下将它设置为 OpenOrCreate (如果不存在则创建数据库,或者使用现有的数据库):
...
FDConnection1.Params.Add('OpenMode=OpenOrCreate');
FDConnection1.Connected := True;
对于Delphi XE7或更低版本附带的FireDAC,请使用上述CreateDatabase参数。