[fpc-pascal] DBF Field name length and fpdbfexport

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Fri Sep 2 13:23:59 CEST 2011



On Fri, 2 Sep 2011, Reinier Olislagers wrote:

> Hi all,
>
> If I Googled correctly, the following field size limits are present for
> the various DBase formats:
> 3: DBase III: 10 characters
> 4: DBase IV: 10 characters
> 7: DBase VII: 32 characters
> 8: FoxPro: 10 characters
>
> 3,4: http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
>
> 7: IIRC, from http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm
> (forwarded by Wikipedia), but that page is down now
>
> 8:
> http://www.dynamic.com/v7/what-are-limitations-foxpro-full-isam-file
> http://www.foxite.com/archives/foxpro-field-names-0000066805.htm
> Apparently Visual FoxPro 8 has 27 characters in a DBC (Database
> container) file, but only 10 in a DBF file.
>
> Is that correct?
> The reason I ask:
>
> In packages\fcl-db\src\export\fpdbfexport.pp
> These tablelevels/formats are defined:
>  TTableFormat = (tfDBaseIII,tfDBaseIV,tfDBaseVII,tfFoxPro);
>
> In function
> function TFPCustomDBFExport.BindFields: Boolean;
> there is this part (line 136):
>  If FormatSettings.AutoRenameFields and
> (FormatSettings.TableFormat=tfDbaseIII) then
>    CheckExportFieldNames;
>
> 1. Shouldn't this be amended to (don't know if you can use in in this way):
>  If FormatSettings.AutoRenameFields and (FormatSettings.TableFormat in
> [tfDbaseIII,tfDbaseIV,FoxPro]) then
>    CheckExportFieldNames;
>
> 2.
> http://devzone.advantagedatabase.com/dz/webhelp/Advantage8.1/server1/table_dbf_.htm
> Characters allowed seem to be for standard Xbase DBF tables that are
> compatible with CA-Clipper DBF tables, Microsoft FoxPro DBF tables, and
> dBASE III+ DBF tables:
>
> may only contain the letters ‘a’-‘z’ and ‘A’-‘Z’, digits ‘0’-‘9’, and
> the underscore ‘_’ character
>
> Presumably the CheckExportFieldNames could be amended for that, too, right?

Presumably, yes.

Michael.


More information about the fpc-pascal mailing list