Проблема с подключением DB через Spotfire на 64-битной машине

StackOverflow https://stackoverflow.com/questions/4614813

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь установить соединение БД с Oracle 10G DB. Я вставил информацию об ошибке ниже. Я ищу информацию о проблеме.

Конфигурация системы:

  • Windows XP SP2.
  • Арка: AMD 64 бита
  • Tibcoe Spotfire 64 бит

Сообщение об ошибке: не удалось открыть источник данных.

TargetInvocationException at Spotfire.Dxp.Framework:
Exception has been thrown by the target of an invocation. (HRESULT: 80131604)

Stack Trace:
   at Spotfire.Dxp.Framework.ApplicationModel.ProgressService.ExecuteWithProgress(String title, String description, ProgressOperation operation)
   at Spotfire.Dxp.Forms.Data.DataFormsUserActions.OpenData(DataSource dataSource, String progressOperationTitle, String progressOperationDescription)


InvalidOperationException at System.Data.OracleClient:
Attempt to load Oracle client libraries threw BadImageFormatException.  This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed. (HRESULT: 80131509)

Stack Trace:
   at System.Data.OracleClient.OCI.DetermineClientVersion()
   at System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
   at System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
   at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OracleClient.OracleConnection.Open()
   at Spotfire.Dxp.Data.Import.DatabaseDataSource.<>c__DisplayClass4.<GetPromptModels>b__0()
   at Spotfire.Dxp.Framework.ApplicationModel.Progress.ExecuteSubtask(String title, ProgressOperation operation)
   at Spotfire.Dxp.Data.Import.DatabaseDataSource.<GetPromptModels>d__6.MoveNext()
   at Spotfire.Dxp.Data.DataSourceConnection.<GetPromptModels>d__2.MoveNext()
   at Spotfire.Dxp.Data.DataSource.Connect(IServiceProvider serviceProvider, DataSourcePromptMode promptMode, Boolean updateInternalState)
   at Spotfire.Dxp.Forms.Data.Import.DataSourceFactoryService.OpenDataSource(DataSource dataSource, IServiceProvider serviceProvider)
   at Spotfire.Dxp.Forms.Application.FormsProgressService.ProgressThread.DoOperationLoop()


BadImageFormatException at System.Data.OracleClient:
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

 (HRESULT: 8007000B)

Stack Trace:
   at System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp, IntPtr errhp, IntPtr dst_locp, IntPtr src_locp, UInt64 amount, UInt64 dst_offset, UInt64 src_offset)
   at System.Data.OracleClient.OCI.DetermineClientVersion()
Это было полезно?

Решение

Ошибка ключей здесь:

BadImageFormatException at System.Data.OracleClient: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) (HRESULT: 8007000B)

То BadImageFormatException Может возникнуть, если вы пытаетесь загрузить 32-битное DLL в приложение 64-бит или наоборот.

Из звуков этого либо:

  • У вас не установлен 64-битный клиент Oracle, или
  • Строка подключения пытается загрузить 32-битный клиентский драйвер Oracle или
  • Драйвер клиента на самом деле поврежден.

Другие советы

Похоже, есть способ заставить Spotfire работать в 32-битном режиме, https://tibbr.tibcommunity.com/tibbr/# !/messages/66091. Но я не могу выяснить, как. Кто-нибудь знает, как заставить Spotfire работать в 32-битном режиме?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top