SQL Server 2000中生成XML的技巧

2021-04-17 04:56:25 字數 1301 閱讀 7582

以前在介紹sql2k的時候已經提到了sql2k對xml的支援,使用for xml語句就可以很容易的把執行的結果轉化為乙個xml,這樣可以在很大程度上提高系統執行效率和開發速度,詳細的內容請參見books online。

但是在使用ado(required ado 2.6)訪問返回的xml的方式和原來的recordset是有所不同的。如果你還是使用recordset訪問的話,只能得到乙個unicode格式的xml schema,而無法得到xml的內容。

其實這個問題也是很容易就能解決的,只是我自以為很熟悉ado,沒有仔細看help,所以沒有發現ado是採用stream的方式來得到和返回xml的。

command 物件有兩個屬性,叫input stream和output stream,屬性的值是乙個iunknown介面。可以把乙個xml parser的介面賦給它,或者是直接用request、response等。這樣的好處是不需要再去生成乙個recordset,不需要去儲存這些資料,從而節省了系統開銷。

下面給大家乙個簡單的把xml用response返回的example:

<%@ language=vbscript %> 

<!-- #include file="adovbs.inc" -->

<%  dim objconn, objcmd, i

set objconn = server.createobject("adodb.connection")

objconn.open "provider=sqloledb.1;password=;

persist security info=true;user id=sa;initial catalog=pba;data source=(local)"

set objcmd = server.createobject("adodb.command")

objcmd.activeconnection = objconn

objcmd.properties("output stream") = response

objcmd.properties("xml root") = "root"

objcmd.commandtext = "select * from userstatus for xml auto"

response.contenttype = "text/xml"

objcmd.execute i, , adexecutestream

set objcmd = nothing

objconn.close

set objconn = nothing

%>

SQLSERVER2000技術規格

sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...

SQLSERVER2000啟動失敗

服務管理器中啟動sqlserver服務 彈出視窗的錯誤資訊是 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 效能日誌和警報 服務 1 解決方法 調整系統時間到你上一次能夠正常啟動的時間,啟動sqlserver服務,成功後,然後再把時間調回來。...

SQLSERVER2000技術規格

quote 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔案 32tb 夠大了吧,...