有没有一种方法可以在不部署ODBC或OLEDB驱动程序的情况下使用Powerbuilder连接到ASA数据库?

有没有一种方法可以在不部署ODBC或OLEDB驱动程序的情况下使用Powerbuilder连接到ASA数据库?,odbc,oledb,powerbuilder,sybase-asa,powerbuilder-build-deploy,Odbc,Oledb,Powerbuilder,Sybase Asa,Powerbuilder Build Deploy,我想要的是在Windows上运行的Powerbuilder应用程序,该应用程序从CD(或其他外部磁盘)上运行,该CD可以从文件位于同一磁盘上的ASA数据库中读取。但是我不想部署ODBC或OLEDB驱动程序。也就是说,我不希望必须将驱动程序文件复制到客户端的硬盘或添加任何注册表项。这可能吗 在Powerbuilder和ASA文档中,它们提到了一些关于“嵌入式数据库连接”的内容,假设您可以在连接字符串中指定数据库服务器的可执行文件。但这没有帮助 当您尝试连接到数据库,并且为事务对象的DBMS属性指定

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


在Powerbuilder和ASA文档中,它们提到了一些关于“嵌入式数据库连接”的内容,假设您可以在连接字符串中指定数据库服务器的可执行文件。但这没有帮助

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


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

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

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

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

示例:

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


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


谢谢。我只是试着调整连接字符串。不起作用。如果你与ASA有联系,那么解决方案可能会相对困难。如果您研究ODBC是如何工作的(不是很有趣),特别是用于设置实际驱动程序的注册表项,然后是用于制作DSN的不同注册表项,则可以通过代码或安装程序使其工作。我会尝试找到一个安装程序,在安装驱动程序和DSN设置之前和之后查看您的机器,并让它生成一个“增量”,作为您需要执行的操作的基础。不是你想要的,但我也在这条路上,我感觉到了你。