gpt4 book ai didi

postgresql - 什么是UseDeclareFetch postgresql odbc

转载 作者:行者123 更新时间:2023-11-29 14:19:36 24 4
gpt4 key购买 nike

我终于在 Windows 10 上测试了一个较旧的 .NET 应用程序。它使用 32 位 9.03 odbc 针对 Postgresql 9.3(64 位)运行了十几个 sql 选择。该应用程序运行 Select 以获取一些配置数据 Select MyRow, MyName from Config where ConfigID = ?并按预期返回。然后它再次运行它以获取不同的 id,它失败并显示错误 [HY000] 没有使用该句柄执行查询。该 sql 在语法上是正确的,当我在 QA 中运行它时,它按预期返回。我用谷歌搜索错误,IBM 说要将 ;UseDeclareFetch=1 添加到连接中。我做到了,应用程序继续运行。

我找不到任何关于 ;UseDeclareFetch=1 的作用以及为什么它突然在 Windows 10 中产生影响的信息。我读过 https://odbc.postgresql.org/docs/config.html但它并没有说明它的用途。

最佳答案

UseDeclareFetch=1 在使用 UnixODBC 启用“单行模式”时更改底层 libpq PostgreSQL 库的行为,如 in the single row mode documentation 所述.

设置此模式后,每次提取都会导致客户端-服务器往返,并将游标中的一行提取到客户端。

如果没有此模式(默认情况下使用UseDeclareFetch),则游标的整个结果集将在返回第一个提取之前推送到客户端内存。这会减少网络使用,但会增加(有时会大大增加)游标结果集所需的客户端 RAM 量。

因此,如果客户端 RAM 有限,您可能需要设置 UseDeclareFetch,但如果您确实使用它,请注意潜在的网络延迟问题。

关于postgresql - 什么是UseDeclareFetch postgresql odbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com