64 位 DBeaver 无法连接到 ODBC 源 - “参数编号超出范围”。

Posted

技术标签:

【中文标题】64 位 DBeaver 无法连接到 ODBC 源 - “参数编号超出范围”。【英文标题】:64-bit DBeaver can't connect to ODBC source - "Parameter number out of range." 【发布时间】:2019-03-29 00:36:58 【问题描述】:

我在运行 Pervasive SQL 的服务器上有一个程序。我可以通过运行 Pervasive ODBC 连接器的 ODBC 连接来连接它。在 Windows ODBC 管理器中,我可以创建源并以 32 位和 64 位进行连接。 (测试连接成功)。

在 DBeaver 32 位中,我可以毫无问题地连接到此数据源;但最新版本的 DBeaver 仅支持 64 位。他们不再制作 32 位版本。所以...我需要让 64 位工作。

当我在 64 位版本的 DBeaver 中创建连接时,指向我之前创建和测试的 64 位 ODBC 连接,我收到以下错误:

[PSQL][ODBC Client Interface]Parameter number out of range.

我不知道如何使这种连接工作。要么是 64 位 DBeaver 中存在错误,要么是我做错了什么。据我所知,这不是架构不匹配。当我在 Windows 中创建 64 位源时,测试连接成功。但 64 位 DBeaver 拒绝连接到该 64 位 ODBC 源。

更新: @mirthiel 的回答是正确的,除了您必须添加 三个 驱动程序文件:pvjdbc2.jarpvjdbc2x.jarjpscs.jar

【问题讨论】:

是连接过程中出错还是运行查询时出错?您使用的是哪个版本的 PSQL?我正在使用 PSQL v11.30,并且能够在 DBeaver 中创建一个指向 64 位 DSN 的连接,该 DSN 指向 Demodata。那样有用吗?您是否尝试过将 JDBC 驱动程序连接到 Pervasive? 我不知道如何尝试 JDBC 连接。 DBeaver 没有“JDBC”选项,只是其中一些(包括 ODBC)似乎在后台使用 JDBC 是连接过程中出错还是运行查询时出错? 在我测试连接时创建连接以及尝试以任何方式使用连接时都会发生这种情况。我没有得到表格列表;根本没有联系 【参考方案1】:

由于 DBeaver 是基于 Java 的程序并且可以使用 JDBC,您可以尝试使用 Pervasive JDBC 驱动程序。为此,请在驱动程序管理器中添加一个新驱动程序。在Class Name 中使用:

com.pervasive.jdbc.v2.Driver

对于URL Template,我使用了:

jdbc:pervasive://servername.1583/dbname?transport=tcp

然后,我添加了 Pervasive JDBC 库(通过单击 Libraries 选项卡中的 Add File。我选择了 Pervasive 驱动程序(在我的 PSQL 安装中为 C:\Program Files (x86)\Pervasive Software\PSQL\bin\pvjdbc2.jar)。

驱动程序设置好后,使用驱动程序添加连接应该可以工作,并且您应该能够使用连接。

【讨论】:

我会试试这个。谢谢你的详细解答! 试过了。首先,在我的电脑上,路径是“Actian”而不是“Pervasive Software”。还要设置“不认证”。测试连接给出了这个错误:Unexpected driver error occurred while connecting to database | com/pervasive/pscs/Manager 知道了!关键是:“如果您从 Pervasive 驱动程序 bin 文件夹中添加另外两个 jar 文件,jpscs.jarpvjdbc2x.jar,则连接有效。”在这里找到:coderanch.com/t/303696/databases/Connection-PervasiveSQL-fails

以上是关于64 位 DBeaver 无法连接到 ODBC 源 - “参数编号超出范围”。的主要内容,如果未能解决你的问题,请参考以下文章

将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序

无法使用 DBeaver 连接到本地主机上的 MariaDB

将 PHP 连接到 UniVerse ODBC DSN

在 Windows 10 上通过 ODBC 连接到 Access 数据库时出现 IIS 500 错误

无法通过 ODBC 将 Access 连接到 SQLlite

无法通过 DBEAVER 连接到雪花超时