SQL Server同Index Server的結合應用2/3——選自《用BackOffice建立Intranet/Extranet應用》一書

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- SQL Server同Index Server的結合應用2/3——選自《用BackOffice建立Intranet/Extranet應用》一書 (http://www.webasp.net/article/3/2709.htm)
-- 作者:未知
-- 發佈日期: 2003-07-11
本段文章節選自鐵道出版社新出的《用BackOffice建立Intranet/Extranet應用》一書(現已在各書店有售。如海澱圖書城、西單圖書大廈等。外地或者需要送貨上門的讀者可以到www.wanbook.com.cn或www.e-bookshop.com.cn上在線購買。本書書號為ISBN7113039448)。本書詳盡地講述了如何使用微軟BackOffice系列產品來組建Intranet/Extranet應用。通過它您將掌握NT的安裝和設置、使用IIS建立Web站點、通過ILS建立網絡會議系統、用Exchange建立企業的郵件和協作系統、用SQL Server建立Web數據庫應用、用Proxy Server建立同Internet安全可靠的連接、用Media Server建立網絡電視台/廣播站、用Chart server建立功能強大的聊天室、用Site Server建立個性化的郵件列表和分析網站的訪問情況、用Commerce Server建立B2B或B2C的電子商務網站。此外本書還對網絡的安全性進行了討論,從而指導您建立一個更為健壯和安全的網絡應用。閱讀本書之後,您將發現實現豐富多彩的網絡應用原來這樣簡單……
絕對原創,歡迎轉載。但請務必保留以上文字。

另一種建立連接的方法為通過SQL語句的方式。建立連接使用sp_addlinkedserver存貯過程。其語法結構如下:
sp_addlinkedserver [@server =] 'server' [, ][@srvproduct =] 'product_name']
    [, ][@provider =] 'provider_name'] [, ][@datasrc =] 'data_source']
    [, ][@location =] 'location'] [, ][@provstr =] 'provider_string']
    [, ][@catalog =] 'catalog']
此存貯過程共有七個參數,其含義分別如下:
■    server:要建立的連接的名稱。
■    srvproduct:為要連接的數據源的產品名稱。此參數默認為空。
■    provider:為要連接的數據源的產品的唯一標識符。在註冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers項中,有本地服務器支持的所有連接數據類型的名稱。
■    datasrc:作為此數據源的一個解釋信息。此參數默認為空。
■    location:作為此數據源所在位置的一個解釋信息。此參數默認為空。
■    provstr:為此數據源的連接串。此參數默認為空。
■    catalog:指明連接時使用的目錄。此參數默認為空。
下面的表格列出了對於連接不同類型的數據,所用參數的取值情況。
數據源    數據類型    product_name    provider_name    data_source    location    provider_string    catalog
SQL Server    Microsoft OLE DB Provider for SQL Server    SQL Server(注)    -    -    -    -    -
SQL Server    Microsoft OLE DB Provider for SQL Server    SQL Server    SQLOLEDB    SQL Server服務器名    -    -    數據庫名(可選)
Oracle    Microsoft OLE DB Provider for Oracle    任意    MSDAORA    SQL*Netalias for Oracle database    -    -    -
Access/Jet    Microsoft OLE DB Provider for Jet    任意    Microsoft.Jet.OLEDB.4.0    數據庫文件的完全路徑和文件名    -    -    -
ODBC data source    Microsoft OLE DB Provider for ODBC    任意    MSDASQL    System DSN of ODBC data source    -    -    -
ODBC data source    Microsoft OLE DB Provider for ODBC    任意    MSDASQL    -    -    ODBC 連接串    -
File system    Microsoft OLE DB Provider for Indexing Service    任意    MSIDXS    Index Server的索引目錄名稱    -    -    -
Microsoft Excel Spreadsheet    Microsoft OLE DB Provider for Jet    任意    Microsoft.Jet.OLEDB.4.0    Excel文件的完全路徑和文件名    -    Excel 5.0    -
Site Server Full-Text Queries    Microsoft OLE DB Provider for Site Server    任意    MSSEARCHSQL    Site Server的索引目錄名稱    -    -    -
註:使用此方式將強制連接到同連接名相同的SQL Server服務器。
    下面的例子將完成與我們在前面通過Enterprise Manager所做的同樣的工作。
    EXECUTE sp_AddLinkedServer FileSystem,
                           'Indexing Service',
                           'MSIDXS',
                           'Web'
    此外還有以下幾個同連接有關的存貯過程:
    sp_dropserver:用於刪除已經建立的連接,其語法結構如下:
    sp_dropserver [@server =] 'server' [, ][@droplogins =]{'droplogins' | NULL}]
    其中server參數指明要刪除的連接的名字。Droplogins則指明同時將為此連接建立的登錄刪除。
    sp_addlinkedsrvlogin:用於為連接建立一個登錄,其語法結構如下:
    sp_addlinkedsrvlogin [@rmtsrvname =] 'rmtsrvname'
    [,][@useself =] 'useself']
    [,][@locallogin =] 'locallogin']
    [,][@rmtuser =] 'rmtuser']
    [,][@rmtpassword =] 'rmtpassword']
    其中rmtsrvname參數為連接的名稱。
    Useself的取值為TRUE或FALSE,指明是否在遠程服務器上直接使用此登錄。這要求在遠程服務器上有一同此登錄相匹配的登錄。此參數默認為TRUE。
    Locallogin為一本地登錄名。此參數默認為空。如果使用默認值,則意味著所有的本地登錄都將連接到遠程服務器。
    rmtuser和rmtpassword分別為遠程服務器上的登錄名及口令。如果useself參數為TRUE,則這兩個參數將被忽略。
    sp_linkedservers:將返回當前本地服務器上所有連接的相關信息。其典型的運行結果如下:
SRV_NAME  SRV_PROVIDERNAME  SRV_PRODUCT  SRV_DATASOURCE  SRV_PROVIDERSTRING  SRV_LOCATION  SRV_CAT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-FILESYSTEM      MSIDXS           index server         NULL                NULL                web           NULL
ZW               SQLOLEDB         SQL Server          ZW                  NULL               NULL          NULL
(2 row(s) affected)
    其中返回的第一行數據為我們在前面建立的Index Server連接。而第二行數據為我們在Enterprise Manager所建立的用來管理SQL Server的連接。也就是在Enterprise Manager中註冊的SQL Server。
    sp_droplinkedsrvlogin:用於刪除為遠程連接建立的登錄。其語法結構如下:
    sp_droplinkedsrvlogin [@rmtsrvname =] 'rmtsrvname',
    [@locallogin =] 'locallogin'
    其中rmtsrvname參數為連接的名稱。Locallogin參數是為遠程連接建立的本地登錄。如要刪除此登錄,要求必須存在映射到此登錄的遠程連接。

webasp.net