Inno设置:使用ADO将参数(用户输入)传递给sql

时间:2012-09-25 13:04:27

标签: ado inno-setup

我在我的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

提前致谢

0 个答案:

没有答案