某某茶叶有限公司欢迎您!
金沙棋牌在线 > 必赢棋牌官网 > OLE DB

OLE DB

时间:2019-11-27 20:39

在SQL SERVER 2008 R2下用Windows 身份认证的登录名创建了一个访问ORACLE数据库的链接服务器xxxxx,测试成功,木有问题,但是其它登录名使用该链接服务器时,报如下错误:

 

javax.servlet.ServletException: Cannot create resource instance
HTTP Status 500 -

OLE-DB的由来

随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数据源可能不是传统的关系数据库,而可能是Excel文件,Email,Internet/Intranet上的电子签名信息。Microsoft为了让应用程序能够以统一的方式存取各种不同的数据源,在1997年提出了UniversalDataAccess(UDA)架构。UDA以COM技术为核心,协助程序员存取企业中各类不同的数据源。UDA以OLE-DB(属于操作系统层次的软件)做为技术的骨架。OLE-DB定义了统一的COM接口做为存取各类异质数据源的标准,并且封装在一组COM对象之中。藉由OLE-DB,程序员就可以使用一致的方式来存取各种数据。但仍然OLE-DB是一个低层次的,利用效率不高。

消息 7302,级别 16,状态 1,第 1 行

Server Error in '/Engtek' Application.


type Exception report

OLE-DB的介绍

OLE-DB(Object Link and embed 即对象连接与嵌入)是微软的战略性的通向不同的数据源的低级应用程序接口。OLE-DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化问题语言(SQL)能力,还具有面向其他非SQL数据类型的通路。 作为微软的组件对象模型(COM)的一种设计,OLE-DB是一组读写数据的方法(在过去可能被称为渠道)。OLE-DB中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。使用OLE DB的应用程序会用到如下的请求序列:初始化OLE——>连接到数据源——>发出命令——>处理结果——>释放数据源对象并停止初始化OLE。

必赢棋牌官网 1

OLE DB标准中定义的新概念----OLE DB将传统的数据库系统划分为多个逻辑组件,这些组件之间相对独立又相互通信。这种组件模型中的各个部分被冠以不同的名称:数据提供者(Data Provider)。 小到普通的文本文件、大到主机上的复杂数据库,或者电子邮件存储,都是数据提供者的例子。有的文档把这些软件组件的开发商也称为数据提供者。

OLE DB 和ODBC的区别
由于OLEDB和ODBC 标准都是为了提供统一的访问数据接口,所以曾经有人疑惑:OLE DB 是不是替代ODBC 的新标准?答案是否定的。实际上,ODBC 标准的对象是基于SQL 的数据源(SQL-Based Data Source),而OLE DB 的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB 标准的数据存储的子集。

Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxx".

Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "DB1". The provider supports the interface, but returns a failure code when it is used.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details:System.Data.SqlClient.SqlException: Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "DB1". The provider supports the interface, but returns a failure code when it is used.

Source Error:

Line 23:         public DataTable GetWipProductionSeries()
Line 24:         {
Line 25: return objBusinessBase.GetDataToDataSet("usp_WipProductionSeries_GetAll").Tables[0];
Line 26:         }
Line 27:     }

Source File:d:ProjectsEngtekApp_CodeSystemWipWipProductionSeries.cs    Line: 25

Stack Trace:

[SqlException (0x80131904): Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "DB1". The provider supports the interface, but returns a failure code when it is used.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +2030802
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5009584
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
   System.Data.SqlClient.SqlDataReader.get_MetaData() +86
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +311
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +144
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +319
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +94
   Insus.NET.Base.ExecuteProcedure(String procedureName, DataSet& dataSet) +186

[Exception: Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "DB1". The provider supports the interface, but returns a failure code when it is used.]
   Insus.NET.Base.ExecuteProcedure(String procedureName, DataSet& dataSet) +250
   Insus.NET.BusinessBase.GetDataToDataSet(String procedureName) +90
   Insus.NET.WipProductionSeries.GetWipProductionSeries() in d:ProjectsEngtekApp_CodeSystemWipWipProductionSeries.cs:25
   System_Report_OldEis_Wip_Stock.Data_Binding() in d:ProjectsEngtekSystemReportOldEisWipStock.aspx.cs:29
   System_Report_OldEis_Wip_Stock.Page_Load(Object sender, EventArgs e) in d:ProjectsEngtekSystemReportOldEisWipStock.aspx.cs:21
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

 


 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

 

数据库升级至Microsoft SQL Server 2008 R2 64位之后,之前链接到SQL2000的程序出错了。的网上到一个解决方法:

On SQL 2000 side run the following script:

必赢棋牌官网 2必赢棋牌官网 3代码

create procedure sp_tables_info_rowset_必赢棋牌官网,64
@table_name sysname,
@table_schema     sysname = null,
@table_type nvarchar(255) = null

as

declare @Result int set @Result = 0
exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type

 

 

 

message

OLE DB 源

OLE DB 源通过使用数据库表、视图或 SQL 命令,从各种兼容 OLE DB 的关系数据库中提取数据。 例如,OLE DB 源可以从 Microsoft Office Access 或 SQL Server 数据库的表中提取数据。
  OLE DB 源提供四种不同数据访问模式用于提取数据:

  • 表或视图。
  • 变量中指定的表或视图。
  • SQL 语句的运行结果。 查询可以是参数化查询。
  • 存储在变量中的 SQL 语句的运行结果。

 

description The server encountered an internal error () that prevented it from fulfilling this request.

此时需要在“服务器对象”——>“链接服务器”——>“访问接口”下,找到OraOLEDB.Oracle选项,单击右键选择属性,然后在访问接口选项下勾选“允许进程内”(Allow inprocess)。即可解决上面问题,有时候,可能需要重新新建此链接服务器。

exception

必赢棋牌官网 4

javax.servlet.ServletException: Cannot create resource instance
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:171)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

 

root cause

老外给出了一个解决这个问题的步骤,相当详细严谨,几乎面面俱到。可以作为参考学习的好资料:

javax.naming.NamingException: Cannot create resource instance
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132)
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
org.apache.naming.NamingContext.lookup(NamingContext.java:791)
org.apache.naming.NamingContext.lookup(NamingContext.java:138)
org.apache.naming.NamingContext.lookup(NamingContext.java:779)
org.apache.naming.NamingContext.lookup(NamingContext.java:138)
org.apache.naming.NamingContext.lookup(NamingContext.java:779)
org.apache.naming.NamingContext.lookup(NamingContext.java:138)
org.apache.naming.NamingContext.lookup(NamingContext.java:779)
org.apache.naming.NamingContext.lookup(NamingContext.java:151)
org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
javax.naming.InitialContext.lookup(InitialContext.java:351)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)