How to delete a field in TDbf lazarus / 16-Databases ---------------------------------------------------------------------- ario · 2010-02-06 11:35 Hi. I recently started using TDbf as my datasource. I know how to delete a record from it. But I don't know How to remove a field from a TDbf table. I tried: Code: [Select]Dbf1.FieldDefs.Delete(1); Dbf1.FieldDefs.Delete(2); Dbf1.FieldDefs.Delete(3); Dbf1.FieldDefs.Delete(4); Dbf1.OpenTable;But nothing happened. Searched all over the internet but everyone talks about deleting a table or a record, But not about deleting a field that previously created. Please help me. Thanks for your attention guys:) ---------------------------------------------------------------------- cdbc · 2010-02-06 17:17 Hi Ario I don't think there's an easy way to do this. IMO you would have to create a new dataset from the edited fielddefs, and then copy all relevant data to the new one, and finally delete the old dataset (table)... hth Regards Benny ---------------------------------------------------------------------- sasa · 2010-02-06 19:13 Deleting fields (including data) is not possible, since record length is fixed according to field definition (dBase is textual based table). As Benny suggest, thus is only possible to create a new table with news definition and copy relevant data to it. ---------------------------------------------------------------------- Handoko · 2010-02-22 16:51 Hi Ario, Here is my code perform the job. Of course you need to do some adaptation. var   Dbf: TDbf;   FieldDefs: TDbfFieldDefs; begin   Dbf := TDbf.Create(nil);   Dbf.TableName := 'C:\Test.dbf';   Dbf.Open;   FieldDefs := TDbfFieldDefs.Create(nil);   FieldDefs.Assign(Dbf.DbfFieldDefs);   Dbf.Close;   FieldDefs.Delete(3); // The index of the record you want to delete   Dbf.RestructureTable(FieldDefs, True);   Dbf.Free;   FieldDefs.Free; end;