2010-03-11 49 views
1

我有一個Delphi 2009應用程序,它使用TADOQuery組件對數據庫運行查詢。當查詢返回數據時,我調用TADOQuery的saveToFile過程,將「pfXML」指定爲格式參數,這顯然將數據保存到XML文檔中。這工作正常。Delphi TADOQuery loadFromFile錯誤:「字符'<'不能用於屬性值」

要查看數據,我有一個包含虛擬列表視圖的屏幕。我在這個屏幕上使用另一個TADOQuery組件並調用loadFromFile過程從XML文檔讀取數據。然後,我可以使用TADOQuery的「fieldByName」函數在虛擬列表視圖中顯示數據。再次,這工作正常 - 或者至少,它在過去幾個月一直工作正常。

我今天遇到一個錯誤,據此我運行了某個查詢,當我試圖打開報告時,出現錯誤:「字符'<'不能在屬性值中使用」。我相信這是一個XML錯誤,但我找不到原因。

我使用Delphi的調試器來查看錯誤在哪裏出現,並且引發異常的行是檢索TADOQuery的記錄數(即adoquery.recordCount)的行。如果我通過代碼中的斷點將鼠標懸停在.recordCount調用上,則工具提示會顯示「Delphi異常處於$ 1286F945」。

就像我說的,這個工作好幾個月了,現在這個錯誤突然出現了。顯然,正在返回的數據中有一些導致問題的東西,但我不知道是什麼。我掃描了XML文檔,並且沒有「<」字符,它們不是標籤的一部分。

最後,爲了預先阻止任何人想要用「爲什麼你這樣做?你應該這樣做......」評論,其中一個應用程序的要求是應用程序必須允許用戶運行一個查詢並將其保存在日後脫機查看,因此調用saveToFile/loadToFile。

回答

3

在花了整個早上調試應用程序之後,我發現問題是由於垃圾數據導致close標籤(>)離開文件中某個字符串的末尾而導致的。

+0

過了一段時間後,您可以將自己的答案標記爲「已接受」 – 2010-03-11 13:00:48

相關問題