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
前もって感謝します