我的应用程序使用 MySQL 服务器。在执行以下操作的 inno 设置脚本中进行了详细说明:
在[代码]
- 安装 MySQL 服务器(确定)
- 安装 MySQL ODBC 连接器(确定)
- 配置 MySQL 服务器(确定)
- 在 Windows 上启动服务 MySQL (Ok)
- 安装应用程序(确定)
在[运行]
- 使用批处理文件在用户表 MySQL 中输入用户和密码(确定)
- 使用批处理文件创建数据库应用程序(确定)
- 启动应用程序(确定)
该脚本运行良好,但是我希望 [run] 部分的第 1 项和第 2 项也在 [code] 中执行,因此:
在[代码]
- 安装 MySQL 服务器(确定)
- 安装 MySQL ODBC 连接器(确定)
- 配置 MySQL 服务器(确定)
- 在 Windows 上启动服务 MySQL (Ok)
- 使用批处理文件在用户表 MySQL 中输入用户和密码(错误)
- 使用批处理文件创建数据库应用程序(错误)
- 安装应用程序(确定)
在[运行]
- 启动应用程序(确定)
但是第二种方案是在包含新用户和密码以及创建数据库时出错。在 [run] 中不会发生这种情况。
我在 [code] 中插入用户和密码的代码如下:
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;