我有一个AcuXDBC服务器,它提供对某些COBOL数据库的ODBC访问。我不控制数据库,也不控制表的配置。
一个特定的表,如果我使用SQL Server查询带有WHERE
子句的表来指定特定日期,我会得到预期的结果。但是,如果我使用MS Access在日期列上查询同一个表,则Access将返回每个记录,而不仅仅是具有该日期的记录。
此表中的其他日期列正常工作。我看到的唯一区别是这个特定的日期列有一个允许重复的索引。然而,有效的列上没有任何索引。
我不明白为什么索引的存在会导致选择失败。
在访问中,以下查询按预期工作:
SELECT PUBLIC_ODH2DB.ORDER_NUMBER, PUBLIC_ODH2DB.POST_DATE, PUBLIC_ODH2DB.ENTRY_DATE
FROM PUBLIC_ODH2DB
WHERE (((PUBLIC_ODH2DB.ENTRY_DATE)=#2/3/2012#));
但是这个没有:
SELECT PUBLIC_ODH2DB.ORDER_NUMBER, PUBLIC_ODH2DB.POST_DATE, PUBLIC_ODH2DB.ENTRY_DATE
FROM PUBLIC_ODH2DB
WHERE (((PUBLIC_ODH2DB.POST_DATE)=#2/3/2012#));
Entry_Date和Post_Date都在COBOL中定义为Date,但看起来像DateTime到ODBC。我看到的唯一区别是Access报告Post_date被索引(Dups OK)。