1

innoセットアップでADOを使用してSQLサーバーに接続していますが、正常に動作しています。また、データベース、ユーザー、スキーマなどを作成するためにいくつかのスクリプトを実行しています。ユーザーからデータベース名を取得しています。スクリプトでユーザー入力に基づいてデータベースを作成する必要があるため、スクリプト内で $(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

前もって感謝します

4

0 に答える 0