【问题标题】:Connect to Oracle DB from Inno Setup?从 Inno Setup 连接到 Oracle DB?
【发布时间】:2021-04-25 16:20:37
【问题描述】:

我使用 Inno Setup 创建安装包,出现了新的需求,我不知道。我正在创建一个新包,它将 Oracle 文件和定制软件复制到服务器。部分安装如下:

连接到 Oracle DB 以根据提供的 SYS 用户名和密码验证连接是否成功。

  • 运行一些 Oracle 脚本。
  • 我已经建立了屏幕并且我有 .sql 脚本。

如何从 Inno Setup 连接到 Oracle 数据库?

连接后,如何运行脚本?

ExecShellExec 真的是最好的选择吗?

我看到了 ADO 连接到 SQL Server 的示例,但不知道如何更改它以与 Oracle 一起使用。

非常感谢任何帮助!谢谢。

【问题讨论】:

    标签: oracle inno-setup ado connect


    【解决方案1】:

    看看[Run] & [UninstallRun] sections

    [Run]
    Filename: "{app}\sqlplus.EXE"; Parameters: "SYS/are_you_really_sure_to_disclose_password?@database_name @your_sql_script.sql" Description: "Run SQL Scripts"; Flags: postinstall nowait
    

    当然,您可以编写一个连接到 Oracle 数据库的 Pascal/Delphi 脚本,但这可能有点矫枉过正。您很可能必须为 Inno Setup 安装 Oracle 驱动程序,而不是为您的实际应用程序安装 Oracle 驱动程序。

    而且我认为将SYS 密码放入 Inno 设置不是一个聪明的主意。 SYS 是 Oracle 中最强大的用户,你不应该硬编码它的密码。

    【讨论】:

    • 感谢您的回复。我没有在工具中硬编码 SYS 密码,它来自我构建的屏幕中的手动输入。运行效果很好,但是它不能很好地处理错误...我通过代码使用脚本,这样我可以向用户显示错误代码和消息。 Exec 或 ShellExec 是最好的方法吗?
    • 我认为ShellExec 只是使用默认程序运行一个文件(在您的情况下为 .sql 文件)。这可能是sqlplus,也可能不是,因此Exec 是正确的。
    【解决方案2】:

    如果您想从代码(Pascal 脚本)连接以更好地处理错误,如您所知,您可以使用 ADO。

    有关如何在 Pascal 脚本中使用 ADO 的示例,请参阅:
    How to connect to MS SQL Server using Inno Setup?

    有关 ADO 的 Oracle 连接字符串示例,请参阅:
    Connecting to Oracle using ADO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      相关资源
      最近更新 更多