从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用从 JMP 17 升级到 JMP 18 后,我的 ODBC 连接停止工作了。在 JMP 17 中,它用于嵌入到 Open Database() 和 New SQL Query() 函数中的各种 SQL 查询,从 Google BigQuery 中提取数据。根据我尝试连接的方式,我收到的错误消息略有不同:
打开数据库(),日志中的错误消息:

新的 SQL 查询():
Windows 用户 ID 和密码在此窗口中不起作用。

通过 > 文件 > 打开数据库 > 新建连接 > 登录创建数据库连接:

我还从头创建了一个新的 DSN,但同样无法正常工作。ODBC 不是最新版本,因为我们的 IT 部门出于疑似 bug 的原因限制了我们可以使用的版本。如果 ODBC 连接在 JMP 17 中可以正常工作,那么假设它在 JMP 18 中也应该可以正常工作,这种假设是否错误?
数据访问回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用你没错。
具体来说,您使用的是哪个版本的 JMP 17 和 JMP 18?
这是一个错误。请联系技术支持,以便我们跟踪此问题。
作为参与从源代码编译 libcurl 更新的人员,我非常确定构建时命令没有被更改。我必须查看 curl 的变更列表,看看默认构建选项是否有变化。
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用您能连接 Windows ODBC 管理器吗?
您所看到的屏幕截图是驱动程序提供的授权对话框。
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用@Paul_Nelson ,谢谢。JMP 版本是17.2.0和18.2.0 ,运行在 Windows 11 企业版上。我已经联系了技术支持,并使用案例编号TS - 00201379更新了此问题。
@bryan_boone ,是的,我可以连接到 ODBC 管理器(如下图所示)。如上所述,在 JMP 17 下连接正常,但在 JMP 18 下则无法连接。
测试连接:

登录后刷新令牌:

回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用@Paul_Nelson这不是 JMP 的 libcurl,而是 ODBC 驱动程序中的 libcurl。
错误消息来自驱动程序,而不是 JMP。
JMP 17 中的连接应该可以在 JMP 18 中工作。
JMP 18 与 JMP 17 不同之处在于,它使用初始连接的连接字符串来创建其他连接(或根据需要断开连接并重新连接)。如果驱动程序未返回完整的连接字符串(符合规范),则后续连接将失败。这可能就是您所看到的。
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用@bryan_boone ,我不确定我是否理解:
- 如果 JMP 17 中的连接应该在 JMP 18 中起作用,那么为什么我看到的是不同的东西?
- 我从零开始创建并配置了一个新的 DSN,并尝试通过“创建数据库连接”>“文件”>“打开数据库”>“新建连接”>“登录”将 JMP 连接到 Google BigQuery。但这行不通。从 JMP 14 开始,我就多次尝试过这种方法,但直到现在在 JMP 18 中,这种方法才失效。为什么?
您建议我采取哪些后续步骤?例如,强制提升 ODBC 驱动程序的版本?
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用@bryan_boone @Paul_Nelson @Dahlia_Watkins ,已升级至最新的 Google BigQuery 驱动程序3.1.2.1004 。没有变化。
以下是一些文档截图:
- JMP 17 左 vs JMP 18 右
- 两者都使用我们内部的“视图开启器”插件进行了测试,该插件可以通过 JSL 的“New SQL Query()”从 Google BigQuery 中提取数据。
- 中间是 ODBC 驱动程序更新的证明
我不明白 JMP 18 数据库登录需要什么?显然,公司内部用户凭证不够用。它还能要求什么呢?

当我点击“更改数据源...> 新建连接> 机器数据源> 选择我的用户 DSN > 确认”时,我收到以下 JMP 警报。

回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用我已经在这里运行了该设置。
该驱动程序不符合 ODBC 规范中的 SQLDriverConnect 函数。
具体来说,它在成功连接后不会返回完整的连接字符串。
我曾与技术支持人员合作,并且有一个使用数据连接器 18 的解决方案(以通过驱动程序的不兼容部分)和以前版本的驱动程序(以通过驱动程序的 libcurl 错误)
您可以联系他们以获取所有详细信息。
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用谢谢@bryan_boone 。我已经将 Google BigQuery 的 Simba ODBC 驱动程序降级到较低版本(3.0.2.1005, 驱动程序存档链接),现在可以使用 JMP 18 连接到我们的 Google BigQuery 数据仓库了。非常感谢@Dahlia_Watkins帮助我找到并找到了这个解决方案。
在我结束此问题并接受此回复作为解决方案之前,除了这里已经提到的内容之外,还有其他什么内容应该或可以通过他们的支持案例引起 Simba / Google 的注意吗?
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用降级驱动程序会影响您遇到的 libcurl 问题。
至于 SQLDriverConnect,完整的连接字符串仅包含 DSN,例如 DSN=MyBigQuery (其中 MyBigQuery 在 ODBC 管理器中定义)。ODBC 规范规定它应该是一个完整的连接字符串,这意味着返回的连接字符串中应该包含所有信息,以便您可以使用它(并且只能使用它)并创建另一个连接。
最后一点是,完整的连接字符串省略了您配置连接时使用的目录(例如 CATALOG=)。您可以在 Windows 注册表中看到这一点,驱动程序连接设置在配置时存储在其中。
回复:从 JMP 17 升级到 JMP 18 后 ODBC 连接不起作用我创建了一个 JMP Note,可以帮助用户体验此JMP 报告 872545 。
抄送: @Ressel