線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3908
推到 Plurk!
推到 Facebook!

如何用Delphi 5 將DB轉到XML及將XML轉到DB中!?

答題得分者是:ccchen
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-11 12:12:21 IP:61.219.xxx.xxx 未訂閱
請問Delphi 5是否有標準元件可以將DB中的資料轉到XML,或將 XML轉到DB中。 目前我用過XMLDataset這個元件將DB中的資料轉到XML上 但是在每一個欄位的取值時,其取得的資料都不是DB中的資料, 如下 -  <![CDATA[ MjAwMjEwMDkwOTI1MjgtMDIwODQ= ]]> 至於讀取資料方面,有試過使用(Delphi OLE Automation for XML)這元件, 但是這個元件的範例檔中可以讀取到他提供的XML範例資料, 但是使用我自己寫的XML檔時,則會發生錯誤。 請問是否還有其他元件可以使用, 或是有利用Delphi 5來存取XML的資料。 雖然知道D6好像有相關的解決辦法, 但是身邊沒有D6,而且專題已經用Delphi 5開發了一半以上, 所以可能沒有辦法換D6(怕一些舊的元件到D6時不能使用) 所以請問D5是否有辦法開發,以及是否有相關的文件可供參考 (最好是D5的)
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-14 13:39:58 IP:210.58.xxx.xxx 未訂閱
Hello skurama : 可以試試使用TClientDataSet元件. 做法如下: 1.放一顆DataSet ( TQuery, TTable, ADOQuery or...), 設定DataBaseName, 下好SQL指令 2.放一顆TClientDataSet, 在他上面按滑鼠右鍵, 選取Assign Local Data再選取剛剛的DataSet 3.此時資料已經在TClientDataSet中, 在案一次滑鼠右鍵選取Save To....存成XML格式即可 Run Time 時就先LoadFromFile 離開程式記得SaveToFile
------


我不是高手, 高手是正在銀幕前微笑的人.
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-14 15:19:26 IP:61.219.xxx.xxx 未訂閱
謝謝~~~ 不過之前試過 但是這樣的話 出來的XML檔的格式不是我要的 這樣做的話 每一個欄位的資位會變成一個Row的屬性 D001
ROC 還是我的方法有錯~~?? 因為我也是用SaveToFile,但沒有做任何處理就Save出去了~~~ 因為格式是客戶要求的,所以現在還是用"土法煉鋼" 即一行一行捉來判斷 一行一行寫出去到XML~~~-_-||| 在深度歷險有一個CSXML好像可以使用 不過他類似一行一行捉來判斷 一行一行寫出去到XML,但是寫起來比較方便~~~~ 還是您有辦法用TClientDataSet做,而且能夠指定輸出格式 謝謝~~~@_@V
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-14 15:24:22 IP:61.219.xxx.xxx 未訂閱
抱歉部份內容變成HTML的標籤了 重貼一次 謝謝~~~ 不過之前試過 但是這樣的話 出來的XML檔的格式不是我要的 這樣做的話 每一個欄位的資位會變成一個Row的屬性 D001 ROC 還是我的方法有錯~~?? 因為我也是用SaveToFile,但沒有做任何處理就Save出去了~~~ 因為格式是客戶要求的,所以現在還是用"土法煉鋼" 即一行一行捉來判斷 一行一行寫出去到XML~~~-_-||| 還是您有辦法用TClientDataSet做,而且能夠指定輸出格式 謝謝~~~
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-14 16:35:10 IP:210.58.xxx.xxx 未訂閱
skurama不好意思, 若是特殊格式的話小弟也只能用TXMLDocument, TClientDataSet對於非它格式的XML文件好像無法讀取.
------


我不是高手, 高手是正在銀幕前微笑的人.
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-14 17:56:59 IP:203.217.xxx.xxx 未訂閱
XML的格式是可以任意定的.只要符合語法 因此若符合Delphi DataPacket所定義, 大家都合知道, 彼此都可以讀. 若不符合, 只要是合法的XML, 用TXMLDocument可以很容易建立DomTree進而了解整個結構 不知道結構又沒檔案, 用猜的沒什麼意義, 我任意定義一種結構你猜的出嗎 每一個欄位的資位會變成一個Row的屬性 這是標準Datapacket之格式 請問是否還有其他元件可以使用,或是有利用Delphi 5來存取XML的資料 沒有用的, 自訂的格式不可能有現成元件轉成DB 必須用Delphi OLE Automation for XML先讀成DOMTree, 在自行轉成DB型式, 其實也是很簡單的
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-14 20:07:08 IP:61.219.xxx.xxx 未訂閱
唉~~~ 小弟用的是Delphi5 所以沒有TXMLDocument(還是我沒有找到) 不過還好在深度歷險裡面有找到一個元件 (因該說單元比較正確,因為他不是繼承的元件) CSXML 做法類似ccchen兄說的DomTree(吧?) 他先是用他的單元檔XMLreader把XML檔讀進來 在一行行放到TTreeNode,之後放到TTreeView元件內 分享給同樣用Delphi 5,確因為開發專案到一半不敢更換至D6的朋友!!@_@
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-10-15 08:19:13 IP:61.219.xxx.xxx 未訂閱
沒有TXMLDocument也沒什麼關係, 用import Type Library, 加入MSXML2即可
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-10-15 21:46:22 IP:61.13.xxx.xxx 未訂閱
對不起~~~ 我不知道什麼是MSXML2 要怎麼import Type Library 抱歉我不太了解專有名詞 是用Impoer下的Install package嗎? Sorry~~~~
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
系統時間:2024-11-25 21:04:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!