2010-05-12 80 views
1

我已經編寫了一個應用程序,允許用戶創建並運行查詢,然後將報告保存到文件。他們可以在稍後的日期從文件加載報告並在屏幕上查看。Delphi TADOQuery SaveToFile問題

我使用TADOQuery組件運行查詢,並在查詢返回數據時調用SaveToFile。然後我使用LoadFromFile將數據加載回TADOQuery,然後從那裏讀取數據到虛擬列表視圖中。在這兩種情況下,我都將「pfXML」指定爲格式參數。

用戶報告了一個問題,報告中的一個字段顯示垃圾而不是可讀文本。經過調查,其xml文檔中針對該特定字段的字段定義被指定爲「dt:type ='bin.hex'」。當我在這裏的系統上運行相同的查詢時,我的xml文檔中的字段定義被指定爲「dt:type ='string'」。

我的問題是爲什麼有區別?數據庫是相同的,那麼爲什麼數據在用戶的系統上以bin.hex的形式保存,並且在其他人的系統上以字符串的形式保存?也許更重要的是,數據類型是如何確定的?當我調用SaveToFile時,TADOQuery組件如何知道數據類型是什麼以及它應該將什麼作爲數據類型寫入xml文檔?

數據是以十六進制格式發送回PC,而TADOQuery組件正在從中提取它的提示,或者它(出於某種原因)認爲該字段的數據類型是十六進制的,並且它會更改數據以適應?

我在網上找不到任何關於此事的信息,而且我無法弄清楚發生了什麼事情,所以任何幫助都將不勝感激。

回答

0

看來這與服務器的設置有關。我們在一個客戶站點和OS400的舊版本(查詢運行在DB2數據庫上)上只有問題。

0

乍一看,聽起來像一個Unicode /字符編碼給我。