إصدار مع اتصال DB عبر Spotfire على جهاز 64 بت
سؤال
أحاول إنشاء اتصال DB بـ 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
يمكن أن يحدث إذا كنت تحاول تحميل DLL 32bit في تطبيق 64 بت ، أو العكس.
من أصوات ذلك ، إما:
- ليس لديك برنامج تشغيل عميل Oracle 64 بت المثبت ، أو
- تحاول سلسلة الاتصال تحميل برنامج تشغيل عميل Oracle 32 بت ، أو
- برنامج تشغيل العميل فاسد بالفعل.
نصائح أخرى
يبدو أن هناك طريقة لإجبار Spotfire على التشغيل في وضع 32 بت ، https://tibbr.tibcommunity.com/tibbr/# !/messages/66091 لكن لا يمكنني معرفة كيف. هل يعرف أي شخص كيفية إجبار Spotfire على التشغيل في وضع 32 بت؟
لا تنتمي إلى StackOverflow