설정 해결 방법 2 = 8192는 ODBC 연결에서 무엇을합니까?
-
05-07-2019 - |
문제
우리 회사는 진전 데이터 베이스. ODBC 연결을 사용하여 데이터베이스 위에 응용 프로그램을 구축했습니다.
진보의 "기발한"중 하나는 SQL 열 폭을 존중하지 않으므로 Varchar (50)로 정의 된 열에서 100자를 허용한다는 것입니다. ODBC를 통해이 데이터를 읽을 때 다음과 같은 오류가 발생합니다.
탁자의 열 test_column test pub.test_table의 값은 최대 길이 또는 정밀도를 초과합니다.
응용 프로그램을 구축 한 회사의 지원 기술은 ODBC 연결 레지스트리의 플래그 주변의 작업을 추가하는 것을 지적했지만, 이러한 플래그가 수행 할 내용 또는 가능한 값이 무엇인지에 대한 문서를 찾을 수는 없습니다. 레지스트리 키가 있습니다
key_current_user-> 소프트웨어-> odbc-> odbc.ini-> myodbcconnectionname-> wnodarounds key_current_user-> 소프트웨어-> odbc-> odbc.ini-> workArounds2
Google은 사람들이 특정 가치 로이 깃발을 추가하여 해결 한 다른 문제를 발견했습니다 (개인적으로 좋아하는 것을 포함하여 매일 WTF)하지만 깃발이 실제로 무엇을하는지 알려주는 곳은 어디에서나 찾을 수 없습니다. 알아?
해결책
진행 상황이 KB를 이동했기 때문에 @tom-bascom의 링크는 더 이상 작동하지 않습니다. @MDB의 질문에 대한 @Stefan-Moser의 의견이 적절합니다.
에 따르면 11 장 해결 옵션 의 ODBC 참조 용 DataDirect Connect 시리즈
해결 방법 2 = 8192. 이 옵션을 활성화하면 Microsoft 액세스가 오류 -7748을 통과하지 못하게됩니다. Microsoft Access는 2 바이트 SQL_C_WCHAR로만 데이터를 요구합니다. 이는 UCS2 문자 및 NULL 터미네이터를 저장하기에 불충분 한 버퍼 크기입니다. 따라서 드라이버는 "01004 Data Truncated"경고를 반환하고 Null 문자를 Microsoft Access로 반환합니다. Microsoft Access는 오류 -7748을 통과합니다.
참조 :
다른 팁
그만큼 DatAdirect Connect for ODBC 용 readme 파일 (UNIX 기반 ODBC 드라이버)에는 문서의 "드라이버 해결 방법"섹션에 해결 방법 목록이 포함되어 있습니다.