2012-07-19 3 views
2

Delphi XE를 사용하는 서비스로 작업 중이며 클라이언트에서 ClientDataset을받습니다. ftWideText 인 필드의 유형을 점검하면 필드가 ftBlob임을 감지합니다. 이유를 이해하기 위해 ClientDataset을 파일에 저장했으며이 필드의 정의에 오류가있는 XML을 얻습니다. 내가 얻을 : 올바른가 두 번 때왜 TClientDataSet은 WideText 필드에 대해 잘못된 형식을 갖습니까?

<FIELD attrname="TEXTTEST" fieldtype="bin.hex" SUBTYPE="" SUBTYPE="WideText" /> 

속성 하위 유형이 나타납니다

<FIELD attrname="TEXTTEST" fieldtype="bin.hex" SUBTYPE="WideText" /> 

이 문제는 서버를 통해 나타납니다; 다른 사람들도 괜찮습니다. Delphi, ADO, SQL Server의 경우 어디서 문제가 있는지 알 수 없습니다.

동일한 데이터베이스를 사용하는 다른 컴퓨터로 웹 서비스를 변경하면 모두 정상적으로 작동합니다. 컴퓨터에 설치된 구성 요소의 ADO 문제라고 생각합니다.

업데이트 : Windows 2003 Server 컴퓨터와 동일한 문제가 있습니다. MDAC 2.8 SP2 (ODBC 구성 요소 버전 3.526)가 설치된 두 대의 컴퓨터에서 모두 오류가 발생합니다. Microsoft SQLServer 2008 R2를 컴퓨터 중 하나에 설치했는데 문제가 해결되었습니다. 문제점을 해결하기 위해 SqlServer2008을 설치하거나 재설치 한 내용을 알아야합니다. 분명히 ADO와 관련이 있지만 현재 ADO의 동일한 버전을 사용하는 두 대의 컴퓨터가 있으며 단 하나만 실패합니다.

+0

서버가 유니 코드 문자열을 지원합니까? 그렇다면 필드가 그렇게 선언되어 있습니까? –

답변

0

마지막으로 문제는 Microsoft MDAC ADO 구성 요소와 관련이 없습니다. 문제는이 문제가있는 컴퓨터에 이전 버전의 Midas.dll이 있다는 것입니다. 해당 DLL은 Delphi ClientDataSet과 관련이 있습니다. 문제는 서버 Midas.dll을 클라이언트의 동일한 버전으로 바꾸는 문제를 수정했습니다.

1

분명히이 문제는 ADO 구성 요소와 관련이 있습니다. 구성 요소의 버전은 6.0이며, 6.1로 업그레이드하면 문제가 해결됩니다.

관련 문제