我在我的inno设置中使用ADO到connect to SQL server,这很正常。我也在执行几个脚本来创建数据库,用户,模式等。 我从用户获取数据库名称,我希望脚本根据用户输入创建数据库,因此在脚本中我使用$(DBNAME)来获取值作为参数。我尝试使用CreateParameter,这不能正常工作,[我不确定我是否正确使用它]是否还有其他选项来实现这一目标?
我的创作代码:
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
提前致谢