2017-12-13 207 views
0

すべて。私はDLLのアプローチを使用しているエラー3706プロバイダが見つかりません。正しくインストールされていない可能性があります。

このコードは、Windows上で非常によく10 64ビットとMS Officeの64ビットを実行しているHow to securely store Connection String details in VBA

に説明しました。しかし、私はWndows 8.1 ProとMS Office 64ビットで使用することができないファイルの同じコピー。

DLL生成は

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm c:\windows\syswow64\OraConnection.dll /tlb /codebase 

しかし、それでもまだ、私が直面しています同じエラーを使用してmachnines環境をホストするために変換されます。環境変数については注意が払われています。 私の接続文字列は、私はDLLは、単純な難読化を超えてあなたを購入するかわからないんだけど

"Provider=OraOLEDB.Oracle; Data Source = ; User ID =; Password="; 
+0

さまざまな数の無料(および有効).NETデコードがあります。セーブ側で気にしないでください! –

+0

フォルダ 'c:\ windows \ syswow64'は、32ビットアセンブリの場所です。デフォルトでは、64ビットアプリケーションはそこから何も読み込みません。あなたのWindows 8.1にOracleクライアント(「Oracle Provider for OLE DB」ドライバを含む)がインストールされていますか? –

+0

MS Office 64ビットはありますか?それはかなり珍しいことです。 –

答えて

0

です。あなたがやっていることは、実際には意味を持たないようにすることは少し難しくなりますが、実際にはプライバシーを保護することはありません。接続文字列の管理に関する私の通常のアドバイスは、単にではないユーザー/パスワードを保存することです。代わりに、ユーザーが実行時にユーザー名とパスワードを入力し、OLEDB接続にPersist Security Info=falseがあることを確認する必要があります。そうすれば、一度開くと完全な接続文字列にアクセスできなくなり、パスワードへの参照がなくなります。これは、DLL内の変数にそれを張り付けて指を渡すよりもはるかに安全です。誰もメモリダンプを読む方法やデバッガを接続する方法を知っている人はいません。

これは、あなたの質問に密接に関連していない、プロバイダを使用することができないと述べた。まず、私がやるべきことは、DLLが、DLLを削除し、プロバイダを直接使用して、期待していない問題を引き起こしているかどうかを判断することです。同じように失敗した場合は、DLLとは何の関係もなく、問題の最下部に到達するためにOracleのプロバイダのドキュメントを参照する必要があります。

+0

難読化は私が欲しいものです。このExcelユーティリティは他のユーザーによって使用されるため、データベースのユーザー名とパスワードを共有したくありません。 –

+0

資格を共有できる別のアカウントを作成するようDBAに依頼してください。 –

+0

これは利用できないオプションです。可能であれば、エラーを解決するためのヘルプ。 –

0

Succesfullマシンでは、私はODAC 12.2cリリース1のために、リリース12.2.0.1.0をOracleクライアントとして使用していました。

しかし2017年6月1日にリリースされたWindowsのx64のため64ビットODAC 12.2cリリース1(12.2.0.1.0)などのOracleクライアントの最新バージョンを見ました。

同じものがインストールされています。そして、私のエラーは解決しました。私がシステム環境変数を観察したとき、私はそれに加えられたいくつかの事を見た。 C:¥Users¥Admin¥Oracle¥; E:¥app¥client¥Admin¥product¥12.2.0¥client_1; E:¥app¥client¥Admin¥product¥12.2.0¥client_1¥bin;

私は実際に何をしたのか分かりません。しかし、エラーは解決されました。

これについて誰でも強調できますか?

+0

C:\ Users \ Admin \ Oracleは興味深いものです。 –

関連する問題