通過HTTP訪問SQL Server 2000數據庫
添加時間:2014-10-7 21:19:34
添加:
思海網絡
Microsoft SQL Server 2000的新特性之一就是支持XML,所以用戶可以通過HTTP方式直接訪問具備XML功能的SQL Server2000數據庫。下面介紹實現方法。
系統環境:Windows2000 Server(包含IIS)+ MS SQL Server2000
數據庫:SQL Server2000附帶的經典數據庫樣本:NorthWind
一、配置IIS和SQL Server virtual domains;
1.新建文件目錄
打開Windows資源管理器,在Inetpub\wwwroot下新建目錄northwind:
C:\Inetpub\wwwroot\northwind
在northwind目錄下再新建2個子目錄:template和schema:
C:\Inetpub\wwwroot\nwind\template,用于放置XML模版;
C:\Inetpub\Wwwroot\nwind\schema,用于放置schema文件。
2.映射IIS的虛擬目錄
在SQL程序組中選擇“Configure SQL XML Support in IIS”,在默認站點下選擇“新建”->“虛擬路徑”;然后進行五步標準配置。
(1)在“General”頁中,輸入虛擬路徑名稱“northwind”并映射至實際硬盤路徑。
(2)在“Security”頁中,選擇相應的登陸帳號和口令。本例中使用系統帳號sa。
(3)在“Data Source”頁中,選擇SQL Server名稱或IP地址,并選擇數據庫。
(4)在“Settings”頁中,分別選中“允許URL查詢”、“允許模版查詢”、“允許XPath”和“允許Post”。
(5)在“Virtual Names”頁中,分別定義Template、Schema和Dbobject,并指定實際硬盤路徑,結果見圖。
然后,確定并關閉窗口。
二、用URL方式執行查詢和存儲過程;
至此,我們已經設置好SQL和IIS,下面開始精彩的訪問歷程。先在IE瀏覽器中鍵入以下地址:
http://172.24.2.98/northwind?sql=select+*+from+customers+for+xml+auto&root=root
得到結果如圖所示。
其中,
“northwind”為虛擬路徑名;
“select+*+from+customers”為SQL查詢語句“Select * from customers”
“for XML”語句表示輸出的數據格式為XML文檔,而非標準數據行。
“root”參數表示為頂層元素。
RAW、AUTO和EXPLICIT三種XML模式分別為:
RAW在每條記錄前加一個簡單的標識,如“<rowCustomerID="ALFKI"…”
AUTO則會在每條記錄前加入數據表的名稱,如“<CustomersCustomerID="ALFKI"”
EXPLICIT則可用于定義XML的樹形結構。
初試成功后,我們再嘗試使用URL地址執行存儲過程(Stored Procedure)。先在SQL Query Analyzer中新建一個名為CategoryInfo的存儲過程;代碼如下:
CREATE PROCEDURE CategoryInfo
AS
SELECT CategoryName, Deion FROM Categories
FOR XML AUTO
通過地址
http://172.24.2.98/northwind?sql=execute+categoryinfo&root=root
即可執行存儲過程。
三、訪問XML模版文件
此外,網站開發人員還可以定義XML的模版,定義查詢條件和結果輸出格式:
如,在wwwroot\northwind\template目錄下生成一個XML文檔first.xml,其中包含一個查詢語句,代碼如下:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<sql:query>
SELECT *
FROM Customers AS Customer
FOR XML auto
</sql:query>
</root>
通過地址http://172.24.2.98/northwind/template/first.xml訪問,得到結果。
結合Extensible Stylesheet Language (XSL)可以格式化查詢結果,使報表更加美觀。
系統環境:Windows2000 Server(包含IIS)+ MS SQL Server2000
數據庫:SQL Server2000附帶的經典數據庫樣本:NorthWind
一、配置IIS和SQL Server virtual domains;
1.新建文件目錄
打開Windows資源管理器,在Inetpub\wwwroot下新建目錄northwind:
C:\Inetpub\wwwroot\northwind
在northwind目錄下再新建2個子目錄:template和schema:
C:\Inetpub\wwwroot\nwind\template,用于放置XML模版;
C:\Inetpub\Wwwroot\nwind\schema,用于放置schema文件。
2.映射IIS的虛擬目錄
在SQL程序組中選擇“Configure SQL XML Support in IIS”,在默認站點下選擇“新建”->“虛擬路徑”;然后進行五步標準配置。
(1)在“General”頁中,輸入虛擬路徑名稱“northwind”并映射至實際硬盤路徑。
(2)在“Security”頁中,選擇相應的登陸帳號和口令。本例中使用系統帳號sa。
(3)在“Data Source”頁中,選擇SQL Server名稱或IP地址,并選擇數據庫。
(4)在“Settings”頁中,分別選中“允許URL查詢”、“允許模版查詢”、“允許XPath”和“允許Post”。
(5)在“Virtual Names”頁中,分別定義Template、Schema和Dbobject,并指定實際硬盤路徑,結果見圖。
然后,確定并關閉窗口。
二、用URL方式執行查詢和存儲過程;
至此,我們已經設置好SQL和IIS,下面開始精彩的訪問歷程。先在IE瀏覽器中鍵入以下地址:
http://172.24.2.98/northwind?sql=select+*+from+customers+for+xml+auto&root=root
得到結果如圖所示。
其中,
“northwind”為虛擬路徑名;
“select+*+from+customers”為SQL查詢語句“Select * from customers”
“for XML”語句表示輸出的數據格式為XML文檔,而非標準數據行。
“root”參數表示為頂層元素。
RAW、AUTO和EXPLICIT三種XML模式分別為:
RAW在每條記錄前加一個簡單的標識,如“<rowCustomerID="ALFKI"…”
AUTO則會在每條記錄前加入數據表的名稱,如“<CustomersCustomerID="ALFKI"”
EXPLICIT則可用于定義XML的樹形結構。
初試成功后,我們再嘗試使用URL地址執行存儲過程(Stored Procedure)。先在SQL Query Analyzer中新建一個名為CategoryInfo的存儲過程;代碼如下:
CREATE PROCEDURE CategoryInfo
AS
SELECT CategoryName, Deion FROM Categories
FOR XML AUTO
通過地址
http://172.24.2.98/northwind?sql=execute+categoryinfo&root=root
即可執行存儲過程。
三、訪問XML模版文件
此外,網站開發人員還可以定義XML的模版,定義查詢條件和結果輸出格式:
如,在wwwroot\northwind\template目錄下生成一個XML文檔first.xml,其中包含一個查詢語句,代碼如下:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<sql:query>
SELECT *
FROM Customers AS Customer
FOR XML auto
</sql:query>
</root>
通過地址http://172.24.2.98/northwind/template/first.xml訪問,得到結果。
結合Extensible Stylesheet Language (XSL)可以格式化查詢結果,使報表更加美觀。
通過以上介紹,你也許已經對SQL2000和XML有了初步的了解。仔細閱讀SQL的幫助文件和MSDN.COM會對你深入掌握SQL2000有著更大的幫助。
關鍵字:SQL Server、數據庫、虛擬目錄
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解