1

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

提前致谢

4

0 回答 0