我通过 Microsoft Jet 使用 pyodbc 从 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 中的工作查询中剪切和粘贴的,但它不返回任何记录。我希望它会返回相同的记录。
当我更改查询以搜索 field2 的不同值时,宾果游戏可以正常工作。它拒绝的只是一些价值观。
所以,请帮帮我。我接下来应该在哪里寻找来解释这种差异?如果我不能相信琐碎查询的结果,我就没有机会参与这个项目!
更新:它变得更加简单!以下查询给出了不同的数字...
从表中选择计数(*)
我考虑它是否与某些形式的缓存和/或另一个偶尔填充数据的应用程序的不正确事务管理有关。