1

dBase III 데이터베이스를 직접 사용하는 회계 소프트웨어가 있습니다. 또한이 데이터베이스를 사용하는 Delphi XE2로 작성된 집에서 만든 소프트웨어도 있습니다. Delphi는 Sybase Advantage 서버 V11을 사용하여 데이터베이스와 통신합니다. 계정 소프트웨어에 "é"라고 쓰면 Advantage 서버에서 "é"를 읽습니다.ADS에서 dbase III와 통신 할 수있는 올바른 코드 페이지를 찾을 수 없습니다.

계정 소프트웨어 회사는 IBM 코드 페이지 850으로 작성된 것으로 생각되지만 Advantage 서버에서 ICLAND850을 사용하면 작동하지 않습니다.

ADS에서 여러 가지 코드 페이지를 시도한 후에 올바른 코드를 찾을 수없는 것 같습니다.

장점 서버의 코드 페이지가 변경되었지만 다른 위치로 변경해야합니까?

DBF에서 설정된 caracter를 감지하는 방법이나 소프트웨어가 있습니까?

답변

3

당신은 당신의 TAdsQueryTAdsTable 구성 요소의 AdsTableOptions.AdsCharType을 설정해야합니다 :

http://devzone.advantagedatabase.com/dz/webhelp/Advantage11/ade_adschartype.htm

당신이 다루고있는 기존의 DBF 파일을 설정해야 이처럼 동적 데이터 정렬은 VFP 테이블에 대해서만 지원됩니다 이 값은 ANSI 또는 OEM 중 하나입니다.

사용중인 연결 유형 (ALS 또는 원격 서버)에 따라 올바른 ANSI/OEM 코드 페이지를 설정하는 방법이 다릅니다.

이 질문에 또한 내 대답을 참조하십시오 : Advantage Database Index Collation Sequence

그것은 TField.AsBytes를 사용하여 데이터에 사용되는 원료 바이트를 얻을 수 있습니다. ASCII가 아닌 문자가 들어있는 예제 행과 필드에서 원시 바이트를 읽고 올바른 코드 페이지를 찾으려면 OEM/ANSI 테이블에서 찾으십시오.

웹에서 사용할 수있는 OEM 및 ANSI 테이블이 있습니다. 예 (유니 코드 $00E9 임) é 문자

는 OEM (850)에 $82입니다 : 당신이 답변을

http://demo.icu-project.org/icu-bin/convexp?conv=ibm-850_P100-1995&s=ALL

+1

감사합니다. 자, 내가 Query.Fields (1) .asbyte, 내가 (000000000)있어하지만 Query.Fields (1) 할 경우. asString 내가있어 ('기음......'). 어떤 생각? – Carl

+0

@Carl 네 말이 맞아. 'AsBytes'는이 일을하지 않아, 나 혼자 시도했다. .dbf 파일은 16 진수 편집기를 사용하여 언제든지 열 수 있습니다. 즉, char가 저장되는 방식을 정확하게 알 수 있습니다. –

+0

아마이 질문도 도움이 될 수 있습니다 : http://stackoverflow.com/questions/6756124/detect-the-encoding-from-a-dbf –

관련 문제