У меня есть сервер AcuXDBC, который обеспечивает доступ ODBC к некоторым базам данных COBOL.Я не контролирую базы данных, ни настройку таблиц.
В одной конкретной таблице, если я использую 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 определены как Date в COBOL, но выглядят как DateTime для ODBC.Единственное отличие, которое я вижу, заключается в том, что Access сообщает об индексировании Post_date (Dups OK).