私のアプリケーションは MySQL サーバーを使用しています。以下を実行する inno セットアップ スクリプトで詳しく説明します。
[コード]で
- MySQL サーバーをインストールします (OK)
- MySQL ODBC コネクタをインストールします (OK)
- MySQL サーバーを構成する (OK)
- Windows でサービス MySQL を開始します (OK)
- アプリケーションをインストールします (OK)
【ラン】で
- バッチ ファイルを使用して、ユーザー テーブル MySQL にユーザーとパスワードを入力します (OK)
- バッチ ファイルを使用してデータベース アプリケーションを作成します (OK)
- アプリケーションを起動します (OK)
スクリプトは正常に機能しましたが、セクション [run] の項目 1 と 2 も [code] で実行する必要がありました。
[コード]で
- MySQL サーバーをインストールします (OK)
- MySQL ODBC コネクタをインストールします (OK)
- MySQL サーバーを構成する (OK)
- Windows でサービス MySQL を開始します (OK)
- バッチ ファイルを使用して、ユーザー テーブル MySQL にユーザーとパスワードを入力します (エラー)
- バッチ ファイルを使用してデータベース アプリケーションを作成します (エラー)
- アプリケーションをインストールします (OK)
【ラン】で
- アプリケーションを起動します (OK)
しかし、2 番目のスキームは、新しいユーザーとパスワードを含め、データベースを作成する際のエラーです。[実行] では、これは発生しません。
ユーザーとパスワードを挿入するために [コード] で使用したコードは次のとおりです。
if (CurStep = ssInstall) then
begin WizardForm.ProgressGauge.Style: = npbstMarquee; WizardForm.StatusLabel.Caption: = 'Starting service MySQL on Windows. This may take a few minutes ... ';
if not Exec (ExpandConstant ('{pf} \ MySQL \ MySQL Server 5.5 \ bin \ mysqld.exe'), 'mysql-u root GRANT ALL PRIVILEGES ON *. * TO myusername @ localhost IDENTIFIED BY mypassword WITH GRANT OPTION;' '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
MsgBox ('The MySQL service failed. Code:' + IntToStr (ResultCode) mbInformation, MB_OK);
WizardForm.ProgressGauge.Style: = npbstNormal; WizardForm.StatusLabel.Caption: ='';
end;