一部のクライアントから受信した .DBF ファイルをプレビューできる VB.NET アプリケーションがあります。次に、アプリケーションは、このファイルから CSV を吐き出そうとします。この CSV は、さまざまな環境で使用できます。このアプリケーションは、Windows XP 32 ビットで動作しました。私たちの会社は最近、私たちのほとんどを Windows 7 x64 にアップグレードしたため、このアプリケーションが失敗しました。このアプリケーションのターゲット ビルドが「任意の CPU」ではなく x86 であることを確認し、アプリを再ビルドしましたが、同じ問題が発生しました。
元々使用していたSystem.Data.Odbc
とconnection.ConnectionString = "Driver={Microsoft dBASE VFP Driver (*.dbf)};SourceType = DBF;SourceDB=" & dbfSourcePath & ";Exclusive=No; Collate=Machine;BACKGROUNDFETCH=NO;"
. 障害の場所はconnection.Open()
です。表示されるエラーは、「エラー [IM001] [Microsoft][ODBC Driver Manager] ドライバーはこの機能をサポートしていません」です。
VFP のドライバーがインストールされておらず、Access DBF ドライバーがここの投稿のように機能しないことに気付きました。そこに記載されている修正プログラムは VFPro SP2 をインストールすることですが、サービス パックをインストールするための FoxPro インストールはありません。次に、VFP 9.0 用の OLEDB ドライバーをインストールしようとしましたが、現在 and を使用System.Data.OleDb
してconnection.ConnectionString = "Provider=VFPOLEDB.1;SourceDB=" & dbfSourcePath & ";"
いますが、connection.Open()
行に次のエラーがあることがわかりました:「機能は利用できません」。
このアプリケーションを Windows 7 x64 で動作させる方法について、私は完全に途方に暮れています。以下は、読みやすくするためにファイルを開くパスを削除したコードの 2 つのバリアントです (パスとファイルが存在することを確認しました)。
ODBC バージョン:
Imports System.Data.Odbc
Dim strSelect As String
strSelect = "SELECT * FROM " & dbfSourceName
Dim connection As New Odbc.OdbcConnection
Dim adp As New Data.Odbc.OdbcDataAdapter
connection.ConnectionString = "Driver={Microsoft dBASE VFP Driver (*.dbf)};SourceType = DBF;SourceDB=" & dbfSourcePath & ";Exclusive=No; Collate=Machine;BACKGROUNDFETCH=NO;"
Dim command As New OdbcCommand(strSelect, connection)
connection.Open() ' Here is where it throws the error.
OLEDB バージョン:
Imports System.Data.OleDb
Dim strSelect As String
strSelect = "SELECT * FROM " & dbfSourceName
Dim connection As OleDbConnection = New OleDbConnection()
Dim adp As New Data.OleDb.OleDbDataAdapter
connection.ConnectionString = "Provider=VFPOLEDB.1;SourceDB=" & dbfSourcePath & ";"
Dim Command As New OleDbCommand(strSelect, connection)
connection.Open() 'Error occurs here.
OLEDB または ODBC 接続を使用して、これらの .DBF ファイルを Windows 7 x64 で開くにはどうすればよいですか?