Access 2016에서 다음 쿼리를 실행하면 결과 0이 나타납니다 .
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'
정확히 동일한 필터로 'AND'하면 결과 1이 표시됩니다 (믿습니다. 실제로 아래와 같은 쿼리를 실행했습니다).
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'
이제 다음을 실행하면 결과 0이 다시 나타납니다.
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND 1=1
데이터베이스의 "컴팩트 및 복구"를 수행했지만 도움이되지 않습니다. 압축 및 복구에도 불구하고 이전 파일이 여전히 손상 된 경우를 대비하여 처음부터 새 파일을 만들려고했지만 도움이되지 않습니다.
테이블 EQUIPMENT_OPERATING_HOURS와 테이블 EQUIPMENT간에 참조 무결성이있는 제약 조건을 설정하면 첫 번째 쿼리가 예상 결과 1을 반환합니다. 제약 조건을 제거하거나 참조 무결성이없는 관계 만 설정하면 다시 0이됩니다. (EQUIPMENT 테이블은 쿼리의 일부가 아니므로 쿼리에 영향을 미치지 않아야 함)
Access 프로그램에서 또는 C ++ ADO를 사용하여 쿼리하면 동일한 동작이 발생하므로 Jet 엔진에 문제가있는 것 같습니다.
정보를 위해 Access 2016을 사용하고 있으며 msjet 4.00.9801.4가 있습니다.