【问题标题】:Is there a way to connect to an ASA database with Powerbuilder without deploying the ODBC or OLEDB drivers?有没有办法在不部署 ODBC 或 OLEDB 驱动程序的情况下使用 Powerbuilder 连接到 ASA 数据库?
【发布时间】:2011-04-03 20:29:24
【问题描述】:

我想要的是一个在 Windows 上运行的 Powerbuilder 应用程序,该应用程序从 CD(或其他一些外部磁盘)运行,该 CD 可以从文件位于同一磁盘上的 ASA 数据库中读取。但我想这样做而不部署 ODBC 或 OLEDB 驱动程序。也就是说,我不想将驱动程序文件复制到客户端的硬盘或添加任何注册表项。这可能吗?

在 Powerbuilder 和 ASA 文档中,他们提到了有关“嵌入式数据库连接”的内容,据说您可以在连接字符串中指定数据库服务器的可执行文件。但这无济于事。

【问题讨论】:

    标签: odbc oledb powerbuilder sybase-asa powerbuilder-build-deploy


    【解决方案1】:

    由于您没有得到太多反馈,我想我会提供这个。我已经使用 MS Access 完成了此操作,但 MS Access 更容易连接,并且大多数 Windows PC 都能够通过基于文件的 DSN 进行连接。

    如果可能在 ASA 中查找基于文件的 DSN,您肯定希望避免使用 ODBC,但因为它更像是一个完整的数据库引擎,我怀疑没有 ODBC 是可能的,并且可以通过注册表条目设置 ODBC,但没有乐趣尤其是当您的客户端运行不同版本的 Windows 时。

    这是我用于类似但 MS Access 的连接字符串。我选择 Access 正是出于这个原因,它是为了一个 RPG 程序,我想要一个数据库,但不想与 ODBC 混淆。

    示例:

    "Connectstring='Driver={Microsoft Access 驱动程序 (*.mdb)};UID=abc;密码=123; Dbq=C:\Program Files\Mafia Manager\mm.mdb; 独占=1;'"

    【讨论】:

    • 谢谢。我只是尝试调整该连接字符串。没用。
    • 如果您绑定到 ASA,那么解决方案可能会相对困难。如果您研究 ODBC 是如何工作的(不好玩),特别是用于设置实际驱动程序的注册表项,然后是用于制作 DSN 的不同注册表项,您可以通过代码或安装程序使其工作。我会尝试找到一个安装程序,在安装驱动程序和 DSN 设置之前和之后查看您的机器,并让它生成一个“增量”,您可以将其用作需要完成的工作的基础。不是你要找的东西,但我也曾走过这条路,我对你有感觉。
    【解决方案2】:

    您必须部署 ODBC 驱动程序,这就是 PB 与 SQL Anywhere 对话的方式。不过,您不必创建 DNS 条目,您可以使用无 DNS 连接。

    http://www.carlprothman.net/Default.aspx?tabid=90#ODBCDriverForSybaseSQLAnywhere

    【讨论】:

      【解决方案3】:

      当您尝试连接到数据库并为事务对象的 DBMS 属性指定“ODBC”时,PowerBuilder 将要开始加载驱动程序并查找 ODBC 数据源以获取驱动程序信息。

      我想尝试的唯一方法是在运行时创建所有注册表项并将它们指向驱动程序文件和 CD 上的 .db 文件。您可能已经可以使用 CD 上基于文件的数据源使事情变得更容易,但您仍然需要创建注册表项来设置驱动程序详细信息。然后,您可以在断开/关闭应用程序时删除所有这些条目。我认为没有注册表项你不能完全做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多