彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 工作委员会 > Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO&q

Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO&q

发布时间:2019-08-30 09:32编辑:工作委员会浏览(139)

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

     

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

    Server Error in '/Engtek' Application.


    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:

    图片 1图片 2代码

    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

     

     

     

     

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

    图片 3

     

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

    Ran into this issue where the linked server would work for users who were local admins on the server, but not for anyone else. After many hours of messing around, I managed to fix the problem using the following steps:

      1:Run “dcomcnfg.exe”. Navigate to “Component Services -> Computers -> My Computer -> DCOM Config”.

      2:Open the properties page of “MSDAINITIALIZE”.

      3:Copy the “Application ID” on the properties page.

      4:Close out of “dcomcnfg”.

      5:Run “regedit”. Navigate to “HKEY_CLASSES_ROOTAppID{???}” with the ??? representing the application ID you copied in step #3.

      6:Right click the “{???}” folder and select “Permissions”

    本文由彩世界平台发布于工作委员会,转载请注明出处:Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO&q

    关键词:

上一篇:16. 窗口函数 (Window Function) 的使用

下一篇:没有了