设置:我在Windows 2012客户端上使用Python 3.3。 我有一个使用pyodbc运行的选择查询,它不会通过fetchall()返回任何结果。我知道查询工作正常,因为我可以将其从Microsoft SQL Management Studio中取出并且没有任何问题 我还可以从选择列表中删除一列,查询将返回结果。对于有问题的数据库行,此列包含大量XML数据(> 10,000个字符),因此似乎有一些缓冲区溢出问题导致fetchall()失败,尽管它没有扔任何例外。我试过谷歌搜索,我已经看到有关配置选项的传言,以提高缓冲区大小,但我还没有能够确定如何做到这一点,或解决方法是什么。
是否有我可以使用的配置选项,或pyodbc的任何替代选项。
免责声明:我现在只使用python大约2周了所以我 虽然我已经尽一切努力研究,但我仍然是相当的菜鸟 我的问题彻底证明这个问题难以理解:
另一方面,我尝试使用odbc而不是pyodbc,但同样的查询引发了这个奇怪的错误谷歌并没有帮助我解决
[ERROR]执行Select查询时出现异常:[] [传递给PyBytes_FromStringAndSize的负大小]
答案 0 :(得分:1)
通过更改我的SQL连接字符串
似乎解决了这个问题FROM:
DRIVER={SQL Server Native Client 11.0}
TO:
DRIVER={SQL Server}