1

ユーザーがクエリを作成して実行し、レポートをファイルに保存できるアプリケーションを作成しました。後日ファイルからレポートを読み込んで画面に表示できます。

TADOQuery コンポーネントを使用してクエリを実行し、クエリがデータを返したときに SaveToFile を呼び出します。次に、LoadFromFile を使用してデータを TADOQuery に読み込み、そこからデータを仮想リストビューに読み込むことができます。どちらの場合も、フォーマット パラメータとして「pfXML」を指定しています。

レポートのフィールドの 1 つに、読み取り可能なテキストではなくゴミが表示されるという問題がユーザーから報告されました。調査の結果、その特定のフィールドの xml ドキュメント内のフィールド定義は「dt:type='bin.hex'」と指定されています。このシステムで同じクエリを実行すると、xml ドキュメントのフィールド定義は "dt:type='string'" として指定されます。

私の質問は、なぜ違いがあるのですか?データベースは同一であるのに、ユーザーのシステムではデータが bin.hex として保存され、他のユーザーのシステムでは文字列として保存されるのはなぜですか? さらに重要なこととして、データ型はどのように決定されるのでしょうか? SaveToFile を呼び出すと、TADOQuery コンポーネントはどのようにしてデータ型を認識し、データ型として xml ドキュメントに何を書き込む必要があるのでしょうか?

データが 16 進数形式で PC に送り返されており、TADOQuery コンポーネントがそこからヒントを得ているのか、それとも (何らかの理由で) そのフィールドのデータ型が 16 進数であると認識してデータを変更しているのか合う?

これについてオンラインで何も見つけることができず、何が起こっているのかわかりません。助けていただければ幸いです。

4

2 に答える 2

0

これはサーバーの設定方法と関係があるようです。問題が発生したのは、1つの顧客サイトと非常に古いバージョンのOS400(クエリはDB2データベース上で実行される)のみです。

于 2010-06-03T16:00:02.997 に答える
0

一見すると、Unicode/char エンコーディングのように思えます。

于 2010-05-12T16:49:03.417 に答える