亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

用SQL 2000創建用戶化XML流

2024-07-21 02:10:41
字體:
來源:轉載
供稿:網友

你可能想在程序當中使用xml,但是僅僅用一個簡單的查詢是不能從microsoft sql server 2000中獲取其信息的。
 
讓我們假設你想將一個html 表格連接到一個xml數據島,但是你十分確定要將若干表格套入母表中十分復雜。母表中的每一個表格一定是xml數據結構中父節點下的一組節點。電話號碼目錄就是一個很好的例子。

<table datasrc="#xmlphonedata">
<tr>
    <td>
        <span datafld="fname"></span>&nbsp;
        <span datafld="lname"></span>
    </td>
</tr>
<tr>
    <td>
        <table datasrc="#xmlphonedata" datafld="phone">
            <tr>
                <td><span datafld="phone_type"></span>:</td>
                <td><span datafld="phone_no"></span></td>
            </tr>
        </table>
    </td>
</tr>
<tr>
    <td>
        <table datasrc="#xmlphonedata" datafld="other_info">
            <tr>
                <td><span datafld="info_type"></span>:</td>
                <td><span datafld="info_data">/span></td>
            </tr>
        </table>
    </td>
</tr>
</table>

 

table代表一系列信息,包括目錄中某個人的名字、所有的電話號碼和那個人的其他信息(譬如說,地址等)。

 

這個xml的模型如下:

<root>
      <data>
          <lname/>
          <fname/>
          <phone>
              <phone_type/>
              <phone_no/>
          </phone>
          <other_info>
              <info_type/>
              <info_data/>
          </other_info>
      </data>
  </root>

 

盡管創建這個xml模型不是不可能的,我們仍然在本文中使用這個簡單的例子。

首先,我們將提供一些背景知識使其更全面。數據來源于三個方面:包含員工的名(fname)和姓(lname)的職工表;包含員工電話類型(phone_type)和電話號碼(phone_no)的電話表;包含員工其他信息(如地址等)的其他信息表(other_info)。

 

如果你想將信息從這些表中抓取到一個記錄集中,sql查詢可以如下:

select employee.lname, employee.fname, phone.phone_type, phone.phone_no,
other_info.info_type, other_info.info_data from employee left join phone on
 phone.employee_id = employee.employee_id left join other_info on
 other_info.employee_id = employee.employee_id

 

當你需要sql 2000中有xml的時候,你通常可以在查詢字符串的末尾輸入一個for xml auto, elements語句,你就可以得到想要的xml字符串。但是,多個節點會有一點小問題。單個節點很容易,但當你引用多個表格時,你可能不會花整天時間去嘗試獲得想要的xml輸出。

 

另一個方法就是關閉行計算和數據輸出。你可以通過將一個指針移入母表數據,用一個指令來操作記錄,然后從帶有for xml auto、elements語句的其他表格選擇相關記錄以分流xml輸出來實現。

 

這個功能最好保存到一個存儲程序,因為指針比較慢,而一個存儲程序被事先編輯好。下面就是完成這項任務的存儲程序(transact sql)。

declare @employee_id int
declare @fname varchar(50)
declare @lname varchar(50)
declare phone_cursor cursor for select employee_id, fname, lname from employees
 order by lname, fname

set nocount on

open phone_cursor

fetch next from phone_cursor into @employee_id, @fname, @lname

while @@fetch_status = 0
begin

    select '<data><fname>' + @fname + '</fname><lname>' + @lname +
 '</lname>'

    select phone_type, phone_no from phone where employee_id =
 @employee_id for xml auto, elements
    select info_type, info_data from other_info where employee_id =
 @employee_id for xml auto, elements

    select '</data>'

    fetch next from phone_cursor into @employee_id, @fname, @lname

end

close phone_cursor
deallocate phone_cursor

set nocount off
go

 

這幾句sql創建了一個用以存儲員工數據和重復執行的指針。為了解除每一個select語句后的行計算輸出功能,nocount被設置為on。當指針中的每條記錄在被操作的時候,構成了一個包含著xml輸出的名和姓節點字符串。電話信息和其他信息也都創建了xml。

 

然后,父節點關閉。在成功地完成了指針操作以后,關閉指針并對其再分配。這就得到了一個符合目標xml模型的xml字符串。

 

為了有效的使用這個xml輸出字符串,輸出必須存儲在一個ado流對象中。利用流對象中的readtext方法可以訪問數據:

<xml id="xmlphonedata" name="xmlphonedata">
<%
dim adoconn, adocmd
dim adostream
set adoconn = server.createobject("adodb.connection")
set adocmd = server.createobject("adodb.command")
adoconn.connectionstring = "some connection string to ms sql 2k"
adoconn.open
set adocmd.activeconnection = adoconn
set adostream = server.createobject("adodb.stream")
adocmd.commandtype = 4 'adcmdstoredproc
adocmd.commandtext = "get_test_phone"
adostream.open
adocmd.properties("output stream") = adostream
adocmd.execute ,,1024 'adexecutestream

response.write adostream.readtext(-1)

adostream.close
set adostream = nothing
adoconn.close
set adocmd = nothing
set adoconn = nothing
%>
</xml>

以上代碼創建了一個ado到sql 2000的連接,執行了一個存儲程序。結果被儲存在ado流對象(adostream)中。其數據寫入response緩沖器,流對象被關閉,然后是一些“清倉”操作。

這個范例提供了一個創建用戶化xml方案的一般方法。通過將html表格連接到xml數據島,你可以創造一些針對性的解決方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成人在线观看国产| 国产精品偷伦视频免费观看国产| 亚洲第一黄色网| 国产国语videosex另类| 尤物99国产成人精品视频| 亚洲一区二区久久久久久| 美日韩精品免费视频| 欧美午夜片在线免费观看| 中文国产成人精品| 亚洲新声在线观看| 欧美性猛交xxxxx水多| 亚洲视屏在线播放| 欧美精品18videos性欧美| 欧美久久精品午夜青青大伊人| 国产日韩一区在线| 国产91久久婷婷一区二区| www.精品av.com| 91精品国产91| 国产欧美在线播放| 日韩视频免费观看| 久久精品久久精品亚洲人| 久久久久久久久中文字幕| 91av福利视频| 欧美性xxxx在线播放| 亚洲大胆美女视频| 亚洲国产第一页| 自拍偷拍亚洲一区| 国产精品一区二区三区免费视频| 高跟丝袜一区二区三区| 亚洲精品xxx| 日韩精品极品在线观看| 亚洲精品国产精品国自产观看浪潮| 日韩欧美亚洲范冰冰与中字| 亚洲一区二区免费| 久久久久久久影院| 国产视频在线一区二区| 亚洲老板91色精品久久| 欧美福利视频在线| 性色av一区二区三区在线观看| 欧美日韩一区二区免费视频| 中文一区二区视频| 欧美激情综合色| 久久韩剧网电视剧| 日韩在线中文字幕| 欧美精品在线免费观看| 日韩在线视频中文字幕| 欧美日本中文字幕| 精品成人av一区| 久久精品福利视频| 国产精品视频在线观看| 欧美视频中文字幕在线| 性欧美长视频免费观看不卡| 亚洲精品成人久久| 中日韩美女免费视频网址在线观看| 国产精品电影在线观看| 国产精品高潮呻吟视频| 日韩中文字幕网站| 国产欧美精品久久久| 久久久久久国产精品| 性日韩欧美在线视频| 夜夜嗨av色一区二区不卡| 成人天堂噜噜噜| 欧美性xxxx极品高清hd直播| 91欧美精品成人综合在线观看| 亚洲wwwav| 亚洲网站视频福利| 影音先锋日韩有码| 久久人人爽人人爽人人片av高清| 欧美国产高跟鞋裸体秀xxxhd| 亚洲国产日韩欧美在线图片| 91av中文字幕| 欧美成aaa人片在线观看蜜臀| 欧美久久精品午夜青青大伊人| 亚洲精品中文字幕有码专区| 91精品国产成人| 成年无码av片在线| 久久成人一区二区| 亚洲va欧美va国产综合剧情| 欧美多人爱爱视频网站| 伊人青青综合网站| 欧美亚洲日本黄色| 亚洲精品一区久久久久久| 国产免费一区二区三区在线能观看| 国产成人aa精品一区在线播放| 亚洲国产日韩一区| 亚洲精品国产福利| 欧美视频在线视频| 色哟哟入口国产精品| 国产成人aa精品一区在线播放| 97香蕉久久超级碰碰高清版| 精品国产美女在线| 国产精品老女人视频| 综合欧美国产视频二区| 欧美激情一级精品国产| 久久精品美女视频网站| 国产97免费视| 久久精品人人做人人爽| 91热福利电影| 亚洲欧美日韩天堂| 国产精品日韩电影| 国产婷婷色综合av蜜臀av| 狠狠做深爱婷婷久久综合一区| 国产精品96久久久久久| 欧美成人激情图片网| 九九热这里只有精品6| 国产精品成人播放| 欧美日韩在线免费| 日韩一区二区久久久| 久久亚洲国产精品| 成人亲热视频网站| 国产精品h片在线播放| 欧美日韩一区二区精品| 国产精品美女免费| 欧美性猛交xxxx黑人| 欧美性xxxxxx| 国产精品福利观看| 中文字幕欧美在线| 亚洲成人精品视频| 亚洲天天在线日亚洲洲精| 日韩av综合中文字幕| 国外成人在线视频| 亚洲激情国产精品| 高跟丝袜一区二区三区| 中文字幕精品www乱入免费视频| 成人观看高清在线观看免费| 九九视频这里只有精品| 国产成一区二区| 亚洲精品国产精品国自产观看浪潮| 欧美视频中文在线看| 国产精品视频精品视频| 91色琪琪电影亚洲精品久久| 国产91|九色| 久久久久久伊人| 91精品久久久久久久久中文字幕| 91久久中文字幕| 成人日韩av在线| 国产精品入口日韩视频大尺度| 国产精品27p| 国产精品高潮呻吟视频| 777国产偷窥盗摄精品视频| 欧美在线激情视频| 日本韩国欧美精品大片卡二| 在线观看精品国产视频| 欧美精品福利在线| 国产日韩综合一区二区性色av| 精品国产一区二区三区在线观看| 亚洲国产一区二区三区四区| 欧美成人免费va影院高清| 国产精品99久久久久久白浆小说| 久久成人免费视频| 91免费欧美精品| 成人网中文字幕| 亚洲色图av在线| 久久欧美在线电影| 国产va免费精品高清在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产精品自拍偷拍| 俺去啦;欧美日韩| 欧美性猛交xxxx免费看久久久| 久久亚洲精品小早川怜子66| 国产精品96久久久久久| 国产精品日日做人人爱| 欧美黑人xxx| 91热福利电影|