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

"select * from Customer For XML auto" .vs. ADO

尚未結案
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-21 10:56:57 IP:61.220.xxx.xxx 未訂閱
各位先進:      小弟不才,目前在SQL Server上使用Query Analyzer執行以下的查詢 "Select * from Customer For XML auto",是可以看到XML的輸出結果,但是確不知如何在Delphi中取得該XML字串,有請先進賜教!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-21 12:06:09 IP:203.95.xxx.xxx 未訂閱
Hi, 一樣地, 使用 TADOQuery 取回, 但只會有一個欄位, 將其值取出即可, 如,    
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.SQL.Text := 'Select * from Customer For XML auto';
  ADOQuery1.Open;
  Memo1.Lines.Text := ADOQuery1.Fields[0].AsString;  //get the xml data
  ADOQuery1.Close;
end;
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-21 12:48:12 IP:61.220.xxx.xxx 未訂閱
感謝timhuang: 依照您的Sample取到"DC"二字 ??? 後來我調整了一下: procedure TForm1.Button2Click(Sender: TObject); begin // ADOQuery1.SQL.Text := 'Select CustomerID from Customers'; ADOQuery1.SQL.Text := 'Select CustomerID from Customers For XML auto'; ADOQuery1.Open; // Memo1.Lines.Text := ADOQuery1.Fields[0].AsString; //get the xml data Memo1.Lines.Text := ADOQuery1.Recordset.Fields[0].Value; ADOQuery1.Close; end; 疑~~~拿到了~~亂碼: ?CustomerID?Customers?????????????一??刀?????一?伀一?........ 但正確的內容應是: <Customers CustomerID="ALFKI"/><Customers CustomerID="ANATR"/><Customers CustomerID="ANTON"/><Cu...... 是否還有什麼應該注意的呢?
Miles
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-21 20:47:56 IP:218.160.xxx.xxx 未訂閱
Hi ChrisChen 您好: 換個方式

procedure TForm1.Button2Click(Sender: TObject);
begin
   ADOQuery1.SQL.Text := 'Select CustomerID from Customers For XML auto';
   ADOQuery1.Open;
   ADOQuery1.SaveToFile('C:\test.xml', pfXML);
   Memo1.Lines.LoadFromFile('C:\test.xml');
   ADOQuery1.Close;
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-22 01:49:19 IP:203.70.xxx.xxx 未訂閱
Hi! Miles,先謝過   不過,這個方法在先前我有試過,但是使用ADO的SaveToFile存下來的XML會有一堆namespace定義,造成了處理上的困難;目前如果依照timhuang提的方式由欄位取出感覺應該是我要的,但目前遇上的問題是取出來的值(字串)編碼好像不對了......因為如果去看取出的值(字串)的Hex如下: "440a43007500730074006f006d006500720049004400440943007500730074006f006d00650072007300010202010e0a.........." 現在如果能夠還原這個編碼就應該是結果了......
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-30 00:14:16 IP:210.64.xxx.xxx 未訂閱
先進們!原諒我的豬頭,現在才結案...無論什麼理由,基本上是我的錯! 這個問題後來我還是自己直接寫程式排除了!但是 > 分數不能選[ >
系統時間:2024-06-29 11:25:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!