3

私のアプリケーションは MySQL サーバーを使用しています。以下を実行する inno セットアップ スクリプトで詳しく説明します。

[コード]で

  1. MySQL サーバーをインストールします (OK)
  2. MySQL ODBC コネクタをインストールします (OK)
  3. MySQL サーバーを構成する (OK)
  4. Windows でサービス MySQL を開始します (OK)
  5. アプリケーションをインストールします (OK)

【ラン】で

  1. バッチ ファイルを使用して、ユーザー テーブル MySQL にユーザーとパスワードを入力します (OK)
  2. バッチ ファイルを使用してデータベース アプリケーションを作成します (OK)
  3. アプリケーションを起動します (OK)

スクリプトは正常に機能しましたが、セクション [run] の項目 1 と 2 も [code] で実行する必要がありました。

[コード]で

  1. MySQL サーバーをインストールします (OK)
  2. MySQL ODBC コネクタをインストールします (OK)
  3. MySQL サーバーを構成する (OK)
  4. Windows でサービス MySQL を開始します (OK)
  5. バッチ ファイルを使用して、ユーザー テーブル MySQL にユーザーとパスワードを入力します (エラー)
  6. バッチ ファイルを使用してデータベース アプリケーションを作成します (エラー)
  7. アプリケーションをインストールします (OK)

【ラン】で

  1. アプリケーションを起動します (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;
4

1 に答える 1