【发布时间】:2014-01-22 18:41:00
【问题描述】:
我必须在我的 Delphi 应用程序中创建 dbf 文件。
对于这种情况,我使用 ADODB。
连接字符串:
const
ConnStringDBF =
'Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=%s;';
//'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE III;OLE DB Services=-1;Data Source=%s;';
//'Driver={Microsoft Visual Foxpro Driver};SourceType=DBF;SourceDB=%s;';
//Driver='Microsoft.ACE.OLEDB.12.0;Data Source=%s;';
和程序(不起作用):
procedure InsertRecordInDBF(file_name: string; DbfRecord: TDbfRecord);
var
ADOConnDBF : TADOConnection;
ADOCommand : TADOCommand;
begin
ADOConnDBF := TADOConnection.Create(nil);
ADOConnDBF.ConnectionString := Format(ConnStringDBF, [data_dir]);
ADOCommand := TADOCommand.Create(nil);
ADOCommand.Connection := ADOConnDBF;
ADOCommand.CommandText := 'Create Table ' + file_name + ' ('
+ 'NUMBER CHAR(11)'
+ ')'
;
ADOCommand.Execute;
end;
错误是:
引发异常类 EOleException,消息为“[Microsoft][Драйвер ODBC dBase] Ошибка синтаксиса при определении поля'。
这意味着:从俄语翻译的语法错误。
但这个 CommandText 完美运行:
ADOCommand.CommandText := 'Create Table ' + file_name + ' ('
+ 'NUMBER_ CHAR(11)'
+ ')'
;
字段名称的区别(Number_而不是Number)
如何创建带有字段编号的表格?
也许我需要不同的连接字符串?
【问题讨论】: