Мы пытаемся вставить данные в файл базы данных клиппера (файл DBF с файлом индекса NTX).
По разным причинам мы не можем изменить формат базы данных.
В настоящее время мы видим две проблемы:
С нашим существующим кодом мы не можем обновить или использовать индексный файл 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).
Есть идеи?