萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> sql server教程 >> 使用HTTP訪問SQLServer

使用HTTP訪問SQLServer

使用 HTTP 訪問 sql server

可以使用 HTTP 訪問 Microsoft® SQL Server™ 2000。在可以使用 HTTP 指定查詢前,必須先用用於 SQL Server 的 IIS 虛擬目錄管理實用工具創建一個虛擬根。-VaacP

SQL Server 的 HTTP 訪問能力使您得以:

  • 直接在 URL 中指定 SQL 查詢,例如:
    http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&root=root
    
    

    指定 FOR XML 子句以 XML 文檔而不是標准行集的形式返回結果。根參數可標識單一的頂層元素。-VaacP

  • 直接在 URL 中指定模板。

    模板是包含一個或多個 SQL 語句的有效的 XML 文檔。模板使您得以將數據放在一起以形成有效的 XML 文檔,但直接在 URL 中指定查詢時不一定是這樣。例如:-VaacP

    http://IISServer/nwind?template=<ROOT+xmlns:sql="urn:schemas-microsoft-com:xml-sql"><sql:query>SELECT+*+FROM+Customers+FOR+XML+AUTO</sql:query></ROOT>
    
    
  • 在 URL 中指定模板文件。

    在 URL 中寫入長 SQL 查詢會很麻煩。此外,浏覽器對在 URL 中可以輸入的文本量可能有限制。若要避免這些問題,可以編寫模板並將其存儲在文件中。模板是包含一個或多個 SQL 語句和 XPath 查詢的有效的 XML 文檔。可以在 URL 中直接指定模板文件,例如:-VaacP

    http://IISServer/nwind/TemplateVirtualName/templatefile.xml
    
    

    在 URL 中,TemplateVirtualName 是使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具創建的 template 類型的虛擬名稱。-VaacP

    模板文件還刪除來自用戶的數據庫查詢的詳細信息以增強安全性。通過將模板文件存儲在注冊數據庫時所在的虛擬根目錄(或其子目錄)中,刪除虛擬根上的 URL 查詢處理服務並只允許 SQL Server XML ISAPI 處理文件及返回結果集,從而加強了安全性。-VaacP

  • 指定在帶批注的 XML 數據簡化 (XDR) 架構(也稱為映射架構)上執行的 XPath 查詢。

    從概念上講,對映射架構編寫 XPath 查詢與使用 CREATE VIEW 語句創建視圖並對視圖編寫 SQL 查詢相似,例如:-VaacP

    http://IISServer/nwind/SchemaVirtualName/schemafile.xml/Customer[@CustomerID="ALFKI"]
    
    

    在這個 URL 中: -VaacP

    • SchemaVirtualName 是使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具創建的 schema 類型的虛擬名稱。

    • Customer[@CustomerID="ALFKI"] 是在該 URL 中指定的 schemafile.xml 上執行的 Xpath 查詢。
  • 直接在 URL 中指定數據庫對象。

    可以將數據庫對象(如表和視圖)指定為 URL 的一部分,並對數據庫對象指定 Xpath 查詢,例如:-VaacP

    http://IISServer/nwind/dbobjectVirtualName/XpathQuery
    
    

    在這個 URL 中,dbobjectVirtualName 是使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具創建的 dbobject 類型的虛擬名稱。-VaacP

    -VaacP

    說明  當在 URL 中執行需要資源(如內存)的操作(創建臨時表和臨時存儲過程、聲明游標、執行sp_xml_preparedocument 等等)時,必須執行適當的相應命令(如 DROP TABLE、DROP PROCEDURE、DEALLOCATE 游標或 EXECUTE sp_xml_removedocument)以釋放資源。-VaacP

XML 文檔和文檔片段

當用 root 參數執行模板或查詢時,結果是有單個頂層元素的完整 XML 文檔。例如,下列 URL 執行模板:-VaacP

http://IISServer/VirtualRoot/TemplateVirutalName/MyTemplate.xml

下面是一個示例模板文件 (MyTemplate.xml):-VaacP

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">

    <sql:query>

      SELECT  * 

      FROM    Customers 

      FOR XML AUTO

    </sql:query>

</ROOT> 

模板中的 <ROOT> 標記為結果 XML 文檔提供了單個的頂層元素。-VaacP

可以直接在 URL 中指定查詢。在此例中,root 參數指定返回文檔中的頂層元素: -VaacP

http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO?root=root 

如果在寫上述查詢時不使用 root 參數,將返回一個 XML 文檔片段(即缺少單個頂層元素的 XML 文檔)。 該片段沒有標題信息。例如,下列 URL 將返回文檔片段:-VaacP

http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO

當請求一個 XML 文檔時,將返回用以標識文檔編碼類型的字節順序標記。字節順序標記是用以標識 XML 文檔編碼類型的標准字節順序。XML 分析器使用該字節順序標記確定文檔編碼類型(如 Unicode)。例如,字節順序標記"oxff, 0xfe"將文檔標識為 Unicode。默認情況下,分析器假設 UTF-8 為文檔編碼類型。 -VaacP

當請求 XML 片段時將不返回字節順序標記,因為字節順序標記屬於 XML 文檔標-VaacP

題,而 XML 片段中沒有標題。-VaacP

使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具

在使用 HTTP 訪問 Microsoft® SQL Server™ 2000 數據庫之前,必須安裝適當的虛擬目錄。在運行 Microsoft Internet 信息服務 (IIS) 的計算機上,使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具(在"SQL Server 工具"程序組中單擊"在 IIS 中配置 SQL XML 支持")定義並注冊新的虛擬目錄,即所謂的虛擬根。該實用工具指示 IIS 在新的虛擬目錄和 Microsoft SQL Server 實例之間創建關聯。-VaacP

必須將 IIS 服務器和虛擬目錄的名稱指定為 URL 的一部分。虛擬目錄(包括登錄、密碼和訪問權限)中的信息用於建立與特定數據庫的連接並執行查詢。-VaacP

可以指定 URL:

  • 直接訪問數據庫對象,例如表。

    在這種情況下,URL 將包括 dbobject 類型的虛擬名稱。-VaacP

  • 執行模板文件。

    模板是由一個或多個 SQL 語句組成的有效的 XML 文檔。在 URL 中指定模板文件時,將執行存儲在模板文件中的 SQL 命令。可以直接在 URL 中指定 SQL 查詢,但考慮到安全性,不建議這樣做。-VaacP

  • 執行 XPath 查詢。

    對指定作為 URL 一部分的帶批注的映射架構文件執行 XPath 查詢。-VaacP

虛擬名

若要使模板文件、映射架構文件或數據庫對象(如表或視圖)成為 URL 的一部分,必須創建 templateschemadbobject 類型的虛擬名稱。將虛擬名稱指定為 URL 的一部分,以便執行模板文件、對映射架構文件執行 XPath 查詢或直接訪問數據庫。-VaacP

在 URL 中指定的虛擬名稱類型(templateschemadbobject)還用於決定在 URL 中指定的文件類型(模板文件或映射架構文件)。例如,下面的 URL 使用模板訪問 SQL Server 數據庫:-VaacP

http://IISServer/nwind/TemplateVirtualName/Template.xml

TemplateVirtualNametemplate 類型的虛擬名稱,用於標識指定的文件 (Template.xml) 是模板文件。-VaacP

 


關鍵詞:

copyright © 萬盛學電腦網 all rights reserved