C#コードを継承しました。古いdBaseファイルを処理します。誰も少なくとも3〜5年はコードに触れておらず、コンパイルされたバージョンはどこかで動作しますが、私はそれにアクセスすることはできません。今、私はそれは(同じアーキテクチャ、十分な探しドライバ)を実行することになっているのと同じ格好の環境上のソースからそれを再コンパイルすることにより、どのように機能するかを試すこと、それは私に次のエラーを与える:なぜ私のODBC dBaseテーブルにアクセスできないのですか?
[42S02] [Microsoft][ODBC dBase driver] A Microsoft Jet database engine could not find the object 'test'. Make sure the object exists and that you spell its name and the path name correctly.
(EDITを )接続文字列
OdbcConnection connection = new OdbcConnection(String.Format("driver={{Microsoft dBase Driver (*.dbf)}};DriverID=533;Dbq={0};Exclusive=1;", path));
と
dbCommand.CommandText = "SELECT Count(*) FROM test";
recNum = (int)dbCommand.ExecuteScalar();
(EDIT)の2行目
私は、ファイルが実際にそこにあるかどうかを確認したり、ファイル名を変更したりするなど、Google上で見つかった明白な解決策を試しました。だから、ファイルがどこにあるのかかなり確信していますファイルが破損していないことを確認してください(インターネットからダウンロードしたシェアウェアを使用してファイルを開くこともできますが、ファイルは過去3〜5年以内に変更されませんでした)。これはdBaseとODBCの私の初めてのことですので、明らかにすべき何かを見逃すかもしれません。
これ以外に何ができるのですか?
コードが失敗した行にコードを提供できますか? –
x64マシンでC#コードを使用したときに問題が発生しました。私の場合は、ターゲット出力をx86に変更して作業しました。しかし一方、マシン上にdBaseドライバの存在もチェックしなければなりませんでした。どちらが一番苦痛な部分でしたか?しかし、幸いにも、私はインストール後に動作するすべての必要なドライバとものをインストールするインストーラのプロダクションバージョンにアクセスできました。 – Nauman
編集が追加されました。アーキテクチャは以前(x86)と同じですが、dBaseドライバはおそらく同じです。私は違いがあるかどうか私にどのように伝えることができるかわかりません。残念ながら、プロダクションバージョンのインストーラはドライバをインストールしません。 – ytg