当前位置:Gxlcms > 数据库问题 > SQLSERVER调用OPENROWSET的方法

SQLSERVER调用OPENROWSET的方法

时间:2021-07-01 10:21:17 帮助过:5人阅读

1. 语法详解

OPENROWSET   
( { provider_name , { datasource ; user_id ; password   
   | provider_string }   
   , {   [ catalog. ] [ schema. ] object   
       | query   
     }   
} )   
  

 

provider_name:字符串,表示在注册表中指定的 OLE DB 访问接口的友好名称)。 provider_name 没有默认值 

 

datasource:对应于特定 OLE DB 数据源的字符串常量。 datasource 是要传递给提供程序的 IDBProperties 接口的 DBPROP_INIT_DATASOURCE 属性,该属性用于初始化提供

       程序 。 通常,此字符串包含数据库文件的名称、数据库服务器的名称,或者访问接口能理解的用于定位数据库的名称。

 

user_id:字符串常量,它是传递给指定 OLE DB 访问接口的用户名。 user_id 为连接指定安全上下文,并作为 DBPROP_AUTH_USERID 属性传入以初始化提供程序 。

 

password:字符串常量,它是传递给 OLE DB 访问接口的用户密码。 在初始化提供程序时,password 作为 DBPROP_AUTH_PASSWORD 属性传入 。

 

 

provider_string:访问接口特定的连接字符串,作为 DBPROP_INIT_PROVIDERSTRING 属性传入以初始化 OLE DB 访问接口。 provider_string 通常封装初始化提供程序所需的

        所有连接信息 。

 

catalog:指定对象所在的目录或数据库的名称。

 

schema:架构的名称或指定对象的对象所有者名称。

 

object:架构的名称或指定对象的对象所有者名称。

 

query:字符串常量,发送到访问接口并由访问接口执行。 SQL Server 的本地实例不处理该查询,但处理由访问接口返回的查询结果(传递查询)。 有些访问接口并不通过表名而

    是通过命令语言提供其表格格式数据,将传递查询用于这些访问接口是非常有用的。 只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上

    就支持传递查询。

 

注:如果 OLE DB 提供程序在指定的数据源中支持多个目录和架构,那么就需要目录及架构名称。如果 OLE DB 提供程序并不支持目录和架构,那么可以省略 catalog 及 schema 的

  值。 如果提供程序只支持架构名,那么必须指定一个两部分名称,形式为 schema.object。如果提供程序只支持目录名,那么必须指定一个三部分名称

  ,形式为 catalog.schema.object。

 

  OPENROWSET 不接受参数变量。

 

权限:OPENROWSET 权限由传递到 OLE DB 提供程序的用户名的权限确定。 

 

2. 示例

 

SELECT * FROM  OPENROWSET(SQLNCLI,
server=IP地址;uid=账号;pwd=密码;database=数据库名称,
SELECT * FROM _category);

 

3. 错误描述

OLE DB 错误:OLE DBODBC 错误

  发生这种问题是因为 SQL SERVER 只提供一组特定访问接口的进程内访问。SQLNCLI.1 是 SQL SERVER 的一个新的本机 OLE DB 访问接口,它具有访问权。但是 SQLNCLI.1 是特定于版本的 SQLNCLI 访问接口,他不在访问接口的列表中,因此 SQLNCI.1 没有访问权,尽管 SQLNCLISQLNCLI.1 完全相同(因为 SQLNCLI 指向 SQLNCI.1),但 SQL SERVER 并不能识别出它们是相同的,SQL SERVER 会阻止对 SQLNCI.1 的访问

 

  要解决此问题,请使用下列方法之一:

  • 在 OLE DB 连接字符串中使用 SQLNCLI 和 SQLOLEDB  代替 SQLNCLI.1
  • SQL SERVER 中,将  SQLNCLI.1 显示添加到具有进程内访问权的供应商列表中

 

  

 

SQLSERVER调用OPENROWSET的方法

标签:style   span   安全   语句   obj   多个   程序   默认   封装   

人气教程排行