2010-05-12 2 views
1

사용자가 쿼리를 만들고 실행 한 다음 보고서를 파일에 저장할 수있는 응용 프로그램을 작성했습니다. 나중에 파일에서 보고서를로드하고 화면에서 볼 수 있습니다.Delphi TADOQuery SaveToFile 문제

TADOQuery 구성 요소를 사용하여 쿼리를 실행하고 쿼리에서 데이터를 반환 할 때 SaveToFile을 호출합니다. 그런 다음 LoadFromFile을 사용하여 데이터를 TADOQuery로 다시로드하고 여기에서 데이터를 가상 목록 뷰로 읽을 수 있습니다. 두 경우 모두 "pfXML"을 형식 매개 변수로 지정합니다.

사용자가 보고서의 필드 중 하나가 읽을 수있는 텍스트 대신 가비지를 표시하는 문제를보고했습니다. 조사가 끝나면 특정 필드에 대한 XML 문서의 필드 정의는 "dt : type = 'bin.hex'"로 지정됩니다. 여기에서 시스템에서 동일한 쿼리를 실행하면 내 XML 문서의 필드 정의가 "dt : type = 'string'"으로 지정됩니다.

그럼 내 질문에 왜 차이가 있습니까? 데이터베이스가 동일하므로 데이터가 사용자 시스템의 bin.hex 및 다른 모든 사용자의 문자열로 저장되는 이유는 무엇입니까? 아마도 더 중요한 점은 데이터 유형이 어떻게 결정되는 것입니까? SaveToFile을 호출하면 TADOQuery 구성 요소가 데이터 형식이 무엇인지, 데이터 형식으로 XML 문서에 무엇을 써야하는지 어떻게 알 수 있습니까?

데이터가 16 진수 형식으로 PC로 다시 전송되고 있으며 TADOQuery 구성 요소가 해당 큐에서 큐를 가져오고 있습니까? (또는 어떤 이유로) 해당 필드의 데이터 형식이 16 진수라고 생각합니까? 데이터가 맞게 변경됩니까?

나는 이것에 관해서 온라인을 찾을 수 없으며 나는 무슨 일이 일어나고 있는지를 알 수 없다. 그래서 어떤 도움을 주시면 감사하겠습니다.

답변

0

이것은 서버 설정 방법과 관련이있는 것으로 보입니다. 한 고객 사이트와 OS400의 매우 오래된 버전 (DB2 데이터베이스를 통해 실행되는 쿼리)에서만 문제가 발생했습니다.

0

제 1의 눈에는 유니 코드/문자 인코딩과 같은 소리가납니다.