2

当尝试在 Windows 10 上的 Excel 2016 for Windows 中使用 Exact Online Adapter 执行以下查询时。我们收到错误“无法检索“客户”的对象元数据。错误代码itgeneor003

create or replace table customers@inmemorystorage
as
select act.id ctr_id
,      act.code ctr_code
,      act.name ctr_name
,      prt.code parent_code
,      prt.name parent_name
from   exactonlinerest..Accounts act
left
outer
join   exactonlinerest..accounts prt
on     prt.id = act.parent

我们得到了下面的堆栈跟踪异常:

Type: Invantive.Configuration.InvantiveSystemException
bij Invantive.Configuration.ValidationException..ctor(String errorCode, String errorMessage, String kindRequest, String localStackTrace, String nk, Exception innerException)
bij Invantive.Configuration.InvantiveSystemException..ctor(String validationCode, String errorMessage, String kindRequest, String stackTrace, String nk, Exception innerException)
bij Invantive.Data.ExactOnlineProvider.GetObjectMetadataForCall(EntityFieldCollection entityFields, EntityFieldCollection& correctedEntityFields)
bij Invantive.Data.ExactOnlineProvider.InsertReturnAffectedCount(EntityFieldCollection entityFields, ParameterList values, Int32& result)
bij Invantive.Data.ConnectionManager.ExecuteProviderInsertReturnAffectedCount(EntityFieldCollection entityFields, ParameterList values, String& handlingPath)
bij Invantive.Data.ConnectionManager.InsertQueryWithAffectedCount(EntityFieldCollection entityFields, ParameterList values)
bij Invantive.Sql.DdlStatementTree.OnExecute(ParameterList parameters, ExpressionParser expressionParser)
bij Invantive.Sql.QueryTree.Execute(ParameterList parameters, ExpressionParser expressionParser)
bij Invantive.Sql.QueryPlan.ForcePlan()
bij Invantive.Sql.QueryPlan.get_Fields()
bij Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(String actionSql, ParameterList parameters, String& handlingPath)
bij Invantive.Data.ConnectionManager.PassthroughSqlActionTable(String actionSql, ParameterList parameters)
bij Invantive.Data.ActionProceduresBase.PassthroughSqlActionTable(String actionSql, ParameterList parameters)
bij Invantive.Producer.Windows.Forms.QueryTool.ExecuteStatement(IProgressNotifier notifier, String statement, ParameterList bindVariables, Boolean showResultsInGrid, Boolean showStatistics, Boolean memorizeStatisticsInSqlHistory, Boolean allowPaging)
bij Invantive.Producer.Windows.Forms.QueryTool.FetchResultsFromSql()
bij Invantive.Producer.Windows.Forms.QueryTool.<>c__DisplayClass109_0.<FetchData>b__0()
bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bij System.Threading.ThreadHelper.ThreadStart()
bij Invantive.Data.ExactOnlineProvider.GetObjectMetadataForCall(EntityFieldCollection entityFields, EntityFieldCollection& correctedEntityFields) in File299:regel 1791
bij Invantive.Data.ExactOnlineProvider.InsertReturnAffectedCount(EntityFieldCollection entityFields, ParameterList values, Int32& result) in File299:regel 1054
bij Invantive.Data.ConnectionManager.ExecuteProviderInsertReturnAffectedCount(EntityFieldCollection entityFields, ParameterList values, String& handlingPath) in File39:regel 3413
bij Invantive.Data.ConnectionManager.InsertQueryWithAffectedCount(EntityFieldCollection entityFields, ParameterList values) in File39:regel 1529
bij Invantive.Sql.DdlStatementTree.OnExecute(ParameterList parameters, ExpressionParser expressionParser) in File121:regel 216
bij Invantive.Sql.QueryTree.Execute(ParameterList parameters, ExpressionParser expressionParser) in File141:regel 100
bij Invantive.Sql.QueryPlan.ForcePlan() in File140:regel 77
bij Invantive.Sql.QueryPlan.get_Fields() in File140:regel 65
bij Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(String actionSql, ParameterList parameters, String& handlingPath) in File39:regel 4021
--- Einde van stacktracering vanaf vorige locatie waar uitzondering is opgetreden ---
bij System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bij Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(String actionSql, ParameterList parameters, String& handlingPath) in File39:regel 4053
bij Invantive.Data.ConnectionManager.PassthroughSqlActionTable(String actionSql, ParameterList parameters) in File39:regel 2093
--- Einde van stacktracering vanaf vorige locatie waar uitzondering is opgetreden ---
bij System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bij Invantive.Data.ConnectionManager.PassthroughSqlActionTable(String actionSql, ParameterList parameters) in File39:regel 2107
bij Invantive.Data.ActionProceduresBase.PassthroughSqlActionTable(String actionSql, ParameterList parameters) in File29:regel 134
bij Invantive.Producer.Windows.Forms.QueryTool.ExecuteStatement(IProgressNotifier notifier, String statement, ParameterList bindVariables, Boolean showResultsInGrid, Boolean showStatistics, Boolean memorizeStatisticsInSqlHistory, Boolean allowPaging) in File949:regel 2825
bij Invantive.Producer.Windows.Forms.QueryTool.FetchResultsFromSql() in File949:regel 2451
4

1 回答 1

1

当 InMemoryStorage 提供程序不可用时,可以重现该错误。尽管该消息令人困惑,但它表明在创建内存表期间发生了错误。

请确保 InMemoryStorage 提供程序可用并获得许可。一些方法可以做到这一点:

在 Invantive Control 的查询工具中查看可用对象列表,它应该列出 InMemoryStorage 提供程序,如下所示:

可用对象

请注意,转换提供程序可能在您的 PC 上不可用;它仅适用于平台之间的复杂数据转换。

或使用以下方式查询可用性:

select * 
from   exactonlinerest..systemproviders 

结果列表应显示它:

结果列表

如果不可用,请检查您使用的产品。使用 Invantive Control,它应该始终可用(请参阅帮助 -> 许可证 -> 组件),但例如使用 Invantive 查询工具,它不可用。使用具有它的产品并确保您的许可证也包含它。

于 2017-01-15T09:24:30.970 回答