PyODBC和Microsoft Access:简单查询的结果不一致

2024-05-16 22:08:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pyodbc,通过Microsoft Jet,从Python程序访问Microsoft access 2003数据库中的数据。

Microsoft Access数据库来自第三方;我只读取数据。

我通常在提取所需数据方面取得了成功,但最近我注意到了一些差异。

我把它归结为一个简单的问题,形式如下:

SELECT field1 FROM table WHERE field1 = 601 AND field2 = 9067

我已经混淆了字段名和值,但事实上,没有比这更微不足道的了!当我在Access中运行查询时,它返回一条记录。

然后我在pyodbc上运行它,代码如下:

connection = pyodbc.connect(connectionString)
rows = connection.execute(queryString).fetchall()

(再说一遍,没有比这更微不足道的了!)

queryString的值是从Access中的工作查询中剪切和粘贴的,但它返回no记录。我希望它能返回同样的记录。

当我更改查询以搜索field2的不同值bingo时,它起作用。这只是它拒绝的一些价值观。

所以,请帮帮我。我下一步应该在哪里解释这种差异?如果我不能信任琐碎查询的结果,我就没有机会在这个项目上!

更新:它变得更加简单!下面的查询给出了不同的数字。。。

从表中选择COUNT(*)

我思考这是否与另一个偶尔填充数据的应用程序的某种形式的缓存和/或不正确的事务管理有关。


Tags: 数据程序数据库access记录差异connection形式
3条回答

这听起来可能很愚蠢。但是。。。

实际数据库连接字符串(DSN)的路径是否指向同一文件位置?

其他ODBC工具(例如Query Tool)也有同样的问题吗? 也可以在ODBC连接管理器中打开ODBC跟踪。我没有权限 不知道它的sql命令是否会被跟踪,但有时它会帮助我解决ODBC问题。

你能给我们一个显示这个问题的模糊数据库吗?我从来没有经历过。至少给出表定义——列是浮点数还是小数?

相关问题 更多 >