0

我最近开始使用 Windows 7 机器。我正在尝试使用 32 位 ASE 驱动程序(Adaptive Server Enterprise)查询 Sybase 数据库。机器上安装的 Sybase 客户端是 v15.5。

问题是,当我查询小数据时,我得到了正确的结果,但是如果预期的结果超过 40 行,我就会得到一个错误。

  >>> x = smd.Query("select ric_code as ric, weight, adjusted_weight as adjweight,
  currency as currency, close_price as last from v_temp_idx_comp where index_ric_
 code='.HSI'")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "s:\quant\python\v1.0\smd.py", line 15, in Query
     result = x.fetchall()
 pyodbc.Error: ('HY000', 'The driver did not supply an error!')

我不确定如何解决此错误。我可以采取哪些步骤来进一步调试?我可以使用一些命令行工具来进一步调查吗?isql怎么样?他们会使用相同的底层驱动程序吗?

仅供参考,查询没有问题。该查询在我以前使用 Merant 驱动程序的机器上运行良好。

欢迎任何建议。

4

1 回答 1

1

我刚看到你的这篇文章,因为我遇到了完全相同的问题。(Windows 7 和 Sybase ASE 15.5 [在我的例子中只有 python 2.7.2]。)

我想我刚刚发现了我的问题:我正在查询的表中的一列被定义为具有“bigint”数据类型。因为这对我来说是一个新表,所以我删除了该表并仅使用“int”作为数据类型重新创建它,现在它工作得很好。我很幸运,因为事实证明我真的不需要“bigint”类型的额外容量——“int”对于我正在做的事情来说已经足够了。

于 2012-07-06T19:34:43.777 回答