深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

SQL Server同Index Server的结合应用2/3


March 25,2004
本段文章节选自铁道出版社新出的《用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_MACHINESOFTWAREMicrosoftMSSQLServerProviders项中,有本地服务器支持的所有连接数据类型的名称。
■    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参数是为远程连接建立的本地登录。如要删除此登录,要求必须存在映射到此登录的远程连接。

       
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved