我在我的 inno 设置中使用 ADO连接到 SQL 服务器,它工作正常。我还在执行一些脚本来创建数据库、用户、模式等。我从用户那里获取数据库名称,我希望脚本根据用户输入创建数据库,因此在脚本中我使用 $(DBNAME ) 以获取该值作为参数。我尝试使用 CreateParameter,但它不能正常工作,[我不确定我是否正确使用它] 是否有任何其他选项可以实现这一目标?
我的inno代码:
if LoadStringFromFile(ExpandConstant('{app}')+ '\SQLScripts\SCRIPT-1_CREATE_DB.sql', SQLQuery) then
begin
ADOCommand.CommandText := SQLQuery;
ADOParameter := ADOCommand.CreateParameter('DBNAME', adChar,adparaminput,30);
ADOParameter.Value := 'Dynadbnew';
ADOCommand.Parameters.Append (ADOParameter);
ADOCommand.Execute(NULL, NULL, adCmdText or adExecuteNoRecords);
end;
下面是我的示例 .sql 脚本
USE [master]
CREATE DATABASE $(DBNAME) ON PRIMARY
( NAME = N'WMSFBASEDB_Data', FILENAME = N'C:\MDF\$(DBNAME).MDF' , SIZE = 420352KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
LOG ON
( NAME = N'WMSFBASEDB_Log', FILENAME = N'C:\MDF\$(DBNAME)_1.LDF' , SIZE = 16824KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
ALTER DATABASE $(DBNAME) ADD FILEGROUP [FG_HIS1]
ALTER DATABASE $(DBNAME) ADD FILEGROUP [FG_HIS2]
ALTER DATABASE $(DBNAME) SET COMPATIBILITY_LEVEL = 100
提前致谢