문제

Microsoft Jet의 Like Operator의 적절한 다중 문자 와일드 카드는 무엇이며 어떤 설정에 영향을 미칩니 까? Microsoft Jet (액세스 데이터베이스)에서 실행되는 기존 ASP 응용 프로그램을 지원하고 있으며 Like Operator의 % 기호를 사용하지만 % 캐릭터가 규칙적인 것으로 이해되기 때문에 환경에 문제가있는 고객이 있습니다. 캐릭터, 그리고 나는 그의 다중 문자 와일드 카드가 *라고 가정합니다. 또한 과거에는 %대신 *을 사용하여 쿼리를 사용하여 응용 프로그램을 작성했다고 확신합니다. 마지막으로, Microsoft Access (응용 프로그램으로)도 *와 함께 작동하지 않지만 (그러나 얼마나 관련성이 있는지 잘 모르겠습니다).

방금 유용한 결과없이 인터넷을 검색하는 데 약 20 분을 보냈으므로 StackoverFlow에 유용 할 것이라고 생각했습니다. 누군가가 이미 그것을 알고있을 수도 있고, 어쨌든 다른 임의의 토론 포럼보다 Stackoverflow에 대한 잠재적 답변을 유지하는 것이 좋습니다.

도움이 되었습니까?

해결책

정답은 와일드 카드 문자의 동작이 사용중인 인터페이스의 ANSI 쿼리 모드에 의존한다는 것입니다.

ANSI-89 쿼리 모드 ( '기존 모드')를 사용합니다. * 문자, ANSI-92 쿼리 모드 ( 'SQL Server Compatibility Mode')는 % 캐릭터. 이 모드는 ACE/JET에만 해당되며 ANSI/ISO SQL-89 및 SQL-92 표준과 유사한 유사성 만 부담합니다.

ADO 인터페이스 (OLE DB)는 항상 ANSI-92 쿼리 모드를 사용합니다.

DAO 인터페이스는 항상 ANSI-89 쿼리 모드를 사용합니다.

ODBC를 사용하는 경우 쿼리 모드는 ExtendanSisql 깃발.

2003 년 버전에서 MS Access 사용자 인터페이스는 쿼리 모드 중 하나를 사용할 수 있으므로 특정 시간에 하나 또는 다른 시간에 다른 쿼리 모드라고 가정하지 마십시오 (예 : 유효성 검사 규칙에서 쿼리 모드 별 와일드 카드 문자를 사용하지 않음).

ACE/JET SQL 구문이 있습니다 ALIKE ANSI-92 쿼리 모드 문자를 허용하는 키워드 (% 그리고 _) 인터페이스의 쿼리 모드에 관계없이 ALIKE 키워드는 SQL-92 호환되지 않습니다 ALIKE 휴대용이 많이 남아 있습니다). 그러나 주요 단점은 내가 이해한다는 것입니다. ALIKE 키워드는 공식적으로 지원되지 않습니다 (그러나 언제라도 사라지거나 행동이 변경 될 것이라고 상상할 수는 없습니다).

다른 팁

DAO를 사용하는 경우 별점 (단일 심볼 자리 표시기의 물음표)을 사용하십시오. Ado를 사용하는 경우 백분율 부호 (및 밑줄)를 사용하십시오.

이 유용한 것을 알 수 있습니다.

http://msdn.microsoft.com/en-us/library/aa140104(Office.10).aspx

쿼리 디자인 그리드와 DAO를 사용하여 사용 *, Ado 및 ASP와 함께 %를 사용합니다.

ODBC를 통해 제트기에 액세스하면 어떤 와일드 카드를 사용해야하는지 명확하지 않습니다. 나는 천연 제트 SQL 제품 (*/?)을 가정하지만 ODBC를 통해 제트 데이터를 사용하지 않기 때문에 말할 수 없습니다.

Access 내에서 Remou Cites가 말하면서 코드에서 사용하는 데이터 액세스 인터페이스 (ADO) (Access 내에서 사용하지 말아야 할 사람이 없음)에 따라 달라지면 %/_를 사용하는 동안 DAO (Jet의 기본 인터페이스 레이어)에 따라 다릅니다. ), 당신은 제트의 네이티브 와일드 카드 (*/?)를 사용합니다.

액세스 내에서 SQL을 실행하는 이후의 액세스 버전에는 예외가 있습니다. 그것이 추가 된 2002 년 또는 2003 년에 액세스했는지는 모르겠지만 요즘에는 ANSI SQL 92 호환 모드가 켜질 수 있습니다. 그렇게하면 와일드 카드는 */? 대신 %/_가됩니다. 그러나 ANSI 모드를 선택할 수 있다는 것은 Access 자체 내에서만 적용됩니다. OneDay가 알려 주듯이 ADO를 사용하여 92 및 DAO 및 ODBC 89를 사용하여 다른 SQL 모드를 사용하려면 다른 데이터 인터페이스 라이브러리를 선택해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top