我使用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中的工作查询中剪切并粘贴的,但它不返回任何记录.我预计它会返回相同的记录.
当我更改查询以搜索field2,bingo的不同值时,它可以正常工作.这只是它拒绝的一些价值观.
所以,请帮帮我.接下来我应该在哪里解释这种差异?如果我不能相信琐碎的查询结果,我就没有机会参与这个项目!
更新:它变得更简单!以下查询给出了不同的数字……
SELECT COUNT(*)FROM table
我认为它是否与某些形式的缓存和/或偶尔填充数据的另一个应用程序的不正确的事务管理有关.
解决方法:
你能给我们一个模糊的数据库来显示这个问题吗?我从来没有经历过这个.至少给出表定义 – 是浮点数还是小数?