使SQLServer資料支援

2021-04-17 04:25:11 字數 2102 閱讀 3460

學習如何用的xml特徵為你的提供新的功能。

如果你在it業工作,那麼你很可能聽說過xml;但如果你的工作主要與sqlserver有關,那麼你可能並沒有直接運用過xml。xml已經是web環境中的普遍的資料格式了,而且它也是中主要的底層技術之一。sqlserver以兩種方式來支援xml:通過sqlserver本身的功能,以及通過發布稱為sqlxml的額外的功能。sqlxml擴充套件了sqlserver,並提供了xml相容性。在本月的專欄中,我將講述sqlserver對xml的內建的支援,並講述通過發布sqlxml而增加的一些功能(見圖1)。sqlserver支援xml就意味著,我們可以更有效地更新和讀取資料了;我們不再需要將xml資料轉換成資料庫可以理解的另一種格式,或將xml資料從資料庫轉換成xml。而且,可供開發人員選擇的方法也更多了,就是說,他們在訪問資料方面更靈活了。

對xml的宣傳已經有很多了,所以重要的一點是要意識到它只是一門簡單的技術。本質上,它是用來描述資料的乙個標準的檔案格式。(有關xml基礎知識的更多的資訊,請參閱工具條「xml101」。)從發布sqlserver2000的最初版本以來,對xml的支援就已經是sqlserver的一部分了。sqlserver不是通過提供乙個方法儲存xml檔案來支援xml的,而是提供了乙個到關係資料的介面,使你可以在表和其它資料庫物件中讀寫xml資料。sqlserver所固有的xml功能包括:可以通過http、模板查詢、forxml子句和openxml()函式來訪問sqlserver。接下來,我將講述這些功能是如何運作的,以及它們可以如何使你的企業受益。

sqlserver

資料支援xmlsrc="/files/bpic/2006-12/25/06122513410473399.jpg"width=238border=1>

圖1.提供xml支援

要通過http訪問乙個sqlserver資料庫,你必須首先設定乙個虛擬目錄。這個虛擬目錄在http和乙個特定的資料庫之間提供了乙個鏈結。設定虛擬目錄時,我們需要用「configuresqlxmlsupportiniis」選單條目,你可以在window的start選單中的sqlserver選單條目找到該項。通過該選單條目,你就可以指定虛擬目錄的名稱、物理路徑、伺服器名稱、資料庫名稱和註冊資訊。一旦你建立了乙個虛擬目錄,你就可以通過乙個url將查詢傳送到資料庫了。如果你設定了乙個叫做northwind的虛擬目錄,並在瀏覽器中輸入了查詢http://localhost/northwind?sql=select+*+from+shippers+for+xml+auto,elements+&root=shippers,它就會返回類似於「xml101」工具條中的shippers例子中的xml資料。與運用ado或其它任何技術相比,http查詢會讓我們更容易地來訪問或web應用程式的資料。對於乙個簡單的查詢語句來說,http查詢會很好,但對於乙個更複雜的查詢來說,這種格式就會變得難以理解並很難管理了。這種方法也不,因為查詢源**是暴露給使用者的。另外一種可選方法是在http上呼叫乙個模板查詢。乙個模板查詢就是乙個包含sql查詢的xml檔案。模板作為檔案儲存在伺服器上。因此,如果你在乙個叫做getshippers.xml的模板中封裝了shippersselect查詢,那麼url查詢的形式就會是:http://localhost/northwind/templates/getshippers.xml。模板也可以帶有引數,當你的模板呼叫乙個儲存過程時,該功能會很有用。在url查詢和模板查詢中,如果你想從查詢返回乙個頁面,那麼你可以指定乙個樣式表,將它用於xml。模板查詢是讀取資料的乙個更安全的方法,它可以被快取以得到更好的效能。

你也可以用forxml子句將資料讀取成xml格式,該方法從sqlserver表中返回資料,你可以把它們看做是xml資料。你可以在乙個select語句中運用forxml子句,它有三種模式可以以不同的格式來返回xml:raw、auto和explicit。raw模式將結果中的每個記錄作為乙個普通的行元素來返回,它被包含在乙個標籤中,並將每個列的值作為乙個屬性。auto模式將每個記錄作為行元素返回,根據源表或檢視對它進行命名。如果查詢從乙個表返回多個列,那麼每個列的值就會被作為表元素的屬性來返回。但最重要的是,如果你的select語句執行了合併操作,那麼auto模式就代表的是子行,它們作為元素巢狀在父行下。explicit模式有幾個引數,你可以通過這些引數完全定義返回的xml的樣式。你可以為每個元素定義標籤,明確確定資料是如何巢狀的。forxml語句使我們不必再返回乙個rowset,然後在客戶端或中間層將它轉換成xml了。1

php支援連線sqlserver資料庫

1 軟體配置 win7 64 wampserver2.2d x32 sql server 2008 r2資料庫,wamp2.2中的php版本是5.3.10。php環境也可以換成php apache。2 支援連線mysql server配置 php版本5.3以前,有php mssql功能,可以使用,但...

使KVM autotest支援qemu 模擬

在預設的情況下 kvm autotest必須要kvm的支援。否則會報錯。現在做下面的改動,可以讓在沒有kvm支援的情況下,也可以使用kvm autotest。diff git a client virt kvm vm.py b client virt kvm vm.py index ffa55c1....

使php支援mbstring庫

mbstring庫 全稱是multi byte string 即各種語言都有自己的編碼,他們的位元組數是不一樣的,目前php內部的編碼只支援iso 8859 euc jp,utf 8 其他的編碼的語言是沒辦法在php程式上正確顯示的。解決的方法就是通過php的mbstring函式庫來解決 其安裝是在...