クリッパー データベース ファイル (NTX インデックス ファイルを含む DBF ファイル) にデータを挿入しようとしています。
さまざまな理由により、データベースの形式を変更することはできません。
現在、次の 2 つの問題が発生しています。
既存のコードでは、NTX インデックス ファイルを更新または利用することはできません (私は信じています)。私たちはこれを実現したいと考えています。これを行うことができる OLE または ODBC ドライバーを知っていますか?
日付が含まれていない限り、行をクリッパー データベース ファイル (DBF) に挿入できます。任意の形式で日付を含めると、エラーが発生します。
いくつかのコード例:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=dBASE IV");
string sql = "insert into TABLE (E, J, DATE, STARTTIME, ENDTIME) values ('1', '2', '2010-01-13' ,'08:12:12', '18:12:12')";
OleDbCommand myCommand = new OleDbCommand(sql);
myCommand.Connection = con;
con.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
例外は次のようなものです。
01/15/2010 12:50:31 {ERROR} ASITranslator.GUI.ASITranslatorGUI.insertSCH - Error in: Syntax error in INSERT INTO statement.-- StackTrace: at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
繰り返しますが、DATE 列がなくても問題なく動作します。
Clipper ファイルに使用するより良いプロバイダーはありますか (そのプロバイダーは他の DBF ファイルに最適です)。
何か案は?