エンドユーザーがMS-Accessデータベースを使用し、リンクテーブルとODBC DSNを介して.dbfファイルのVisual Fox Proディレクトリに接続しています。これは、Symantec Endpoint Protectionがいくつかのアップデートをインストールするまで正常に機能しましたが、一部のマシンがそれに接続しようとすると、ODBC失敗エラーが表示されます。
これは、Symantec Endpoint Protectionをアンインストールするとデータベースが再び機能するためです。
次の仕様があります。
SEP:
- Symantec Endpoint Protection Small Business Editionから管理されるSymantec Endpoint Protectionの管理。
Symantec.cloud-クラウドエージェント2.03.70.2614
Symantec.cloud-エンドポイント保護-NIS-21.5.0.19
32ビットODBCドライバー:
Microsoft Visual FoxProドライバー-6.01.8629.01-VFPODBC.DLL-12/7/1999
このドライバーは、レジストリキーを使用して(サポートされていないため)Windows 7に組み込まれています。64ビットマシンでC:\ Windows \ SysWOW64 \ odbcad32.exeを使用してドライバーをインストールする必要があることは既に認識しています。SEPがインストールされていない限り、ドライバーは既に機能しています。
MS-Access:
問題が発生しているMS-Accessには、2007年とOffice 365の間にいくつかのバージョンがあるため、ODBCとSEPに関係していると信じられます... SEPをアンインストールすると、最終的には作業用データベースを使用します。ただし、SEPでファイアウォールを無効にしても問題は解決しません。
機械:
この問題が発生するマシンのほとんどはLenovo ThinkCentere M73ですが、このタイプのマシンに限定されるものではなく、Dell OptiPlexesを使用するユーザーもいます(これは関連性があるとは思いません)。
すでにSEPサポートと話し合っていますが、彼らが最初に考えたのは、ファイアウォールを管理するSEPの問題だということです。マシンを配置するグループを作成しました。これにより、SEPインターフェース内でファイアウォールをオフにすることができ、15分以上それを行うオプションが与えられました。これは問題を解決しませんでした。
また、ODBCトレースを実行し、エンドユーザーのMicrosoft AccessデータベースからVisual Fox Proのリンクテーブルにアクセスしようとしました。その結果、ログファイルが作成されました。
ODBCからのトレースの結果は次のとおりです。
Secured.mdw 8d0-bcc ENTER SQLAllocEnv
HENV * 0x002521A4
Secured.mdw 8d0-bcc EXIT SQLAllocEnv with return code 0 (SQL_SUCCESS)
HENV * 0x002521A4 ( 0x03907130)
Secured.mdw 8d0-bcc ENTER SQLAllocConnect
HENV 0x03907130
HDBC * 0x002520D0
Secured.mdw 8d0-bcc EXIT SQLAllocConnect with return code 0 (SQL_SUCCESS)
HENV 0x03907130
HDBC * 0x002520D0 ( 0x03955AE8)
Secured.mdw 8d0-bcc ENTER SQLSetConnectOptionW
HDBC 0x03955AE8
SQLINTEGER 103 <SQL_LOGIN_TIMEOUT>
SQLPOINTER 20
Secured.mdw 8d0-bcc EXIT SQLSetConnectOptionW with return code 0 (SQL_SUCCESS)
HDBC 0x03955AE8
SQLINTEGER 103 <SQL_LOGIN_TIMEOUT>
SQLPOINTER 20
Secured.mdw 8d0-bcc ENTER SQLSetConnectAttrW
SQLHDBC 0x03955AE8
SQLINTEGER 30002 <unknown>
SQLPOINTER [Unknown attribute 30002]
SQLINTEGER -3
Secured.mdw 8d0-bcc EXIT SQLSetConnectAttrW with return code 0 (SQL_SUCCESS)
SQLHDBC 0x03955AE8
SQLINTEGER 30002 <unknown>
SQLPOINTER [Unknown attribute 30002]
SQLINTEGER -3
Secured.mdw 8d0-bcc ENTER SQLDriverConnectW
HDBC 0x03955AE8
HWND 0x0004031C
WCHAR * 0x6D768B34 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x6D768B34
SWORD -3
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>
Secured.mdw 8d0-bcc EXIT SQLDriverConnectW with return code -1 (SQL_ERROR)
HDBC 0x03955AE8
HWND 0x0004031C
WCHAR * 0x6D768B34 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x6D768B34
SWORD -3
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>
DIAG [IM003] Specified driver could not be loaded due to system error 0: The operation completed successfully. (Microsoft Visual FoxPro Driver, C:\Windows\system32\vfpodbc.dll). (160)
Secured.mdw 8d0-bcc ENTER SQLErrorW
HENV 0x03907130
HDBC 0x03955AE8
HSTMT 0x00000000
WCHAR * 0x0025206C
SDWORD * 0x00252034
WCHAR * 0x05F5A788
SWORD 4095
SWORD * 0x00252028
Secured.mdw 8d0-bcc EXIT SQLErrorW with return code 0 (SQL_SUCCESS)
HENV 0x03907130
HDBC 0x03955AE8
HSTMT 0x00000000
WCHAR * 0x0025206C [ 5] "IM003"
SDWORD * 0x00252034 (160)
WCHAR * 0x05F5A788 [ 165] "Specified driver could not be loaded due to system error 0: The operation completed successfully. (Microsoft Visual FoxPro Driver, C:\Windows\system32\vfpodbc.dll)."
SWORD 4095
SWORD * 0x00252028 (165)
Secured.mdw 8d0-bcc ENTER SQLErrorW
HENV 0x03907130
HDBC 0x03955AE8
HSTMT 0x00000000
WCHAR * 0x0025206C
SDWORD * 0x00252034
WCHAR * 0x05F5A8E8
SWORD 3919
SWORD * 0x00252028
Secured.mdw 8d0-bcc EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x03907130
HDBC 0x03955AE8
HSTMT 0x00000000
WCHAR * 0x0025206C
SDWORD * 0x00252034
WCHAR * 0x05F5A8E8
SWORD 3919
SWORD * 0x00252028
Secured.mdw 8d0-bcc ENTER SQLFreeConnect
HDBC 0x03955AE8
Secured.mdw 8d0-bcc EXIT SQLFreeConnect with return code 0 (SQL_SUCCESS)
HDBC 0x03955AE8
Secured.mdw 8d0-bcc ENTER SQLFreeEnv
HENV 0x03907130
Secured.mdw 8d0-bcc EXIT SQLFreeEnv with return code 0 (SQL_SUCCESS)
HENV 0x03907130
いくつかのマシンでは動作しないが、すべてではない理由はありますか?
.cloud
アンインストールするとドライバーが再び動作するため、明らかに問題となったのは彼らのソフトウェアでした。
C:\Windows\system32\vfpodbc.dll
は64ビットライブラリでなければなりません。それが実際に32ビットDLLである場合は、をC:\Windows\syswow64\vfpodbc.dll
使用して、(ユーザーDSNではなくシステムDSNのみを使用して最適に)配置して管理する必要がありますC:\Windows\syswow64\odbcad32.exe
。一部のマシンで動作し、他のマシンでは動作しない理由については、ここでフラグを付けていない違いがあると推測できます。