我們試圖將數據插入到Clipper數據庫文件(帶有NTX索引文件的DBF文件)中。使用OLE將日期字段插入到Clipper數據庫中
由於各種原因,我們無法更改數據庫格式。
目前,我們正在看到兩個問題:
與我們現有的代碼,我們無法更新或利用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()
接下來,沒有日期欄,它工作正常。
是否有更好的提供者用於Clipper文件(該提供者適用於其他DBF文件)。
任何想法?
這是對user48208的答案作出的調整。 – Vincent 2010-06-05 00:59:41