Now I got it a bit further. It seams that it doesn't crash if I set FirstLineAsSchema to true, but it also shows wrong value.
Here is my database file: ID,NAMEEN,NAMEPT,HEIGHT,WIDTH,PINS,DRAWINGCODE 1,resistor,resistor,1,1,1,LINE 2,capacitor,capacitor,1,1,1,LINE When listing the value of the NAMEEN field it will show: NAMEEN, resistor, resistor (yes, resistor again!) The correct should be: resistor, capacitor Any ideas? Every time I work with databases it's really frustrating =/ constructor TComponentsDatabase.Create; begin inherited Create; FDataset := TSdfDataset.Create(nil); FDataset.FileName := vConfigurations.ComponentsDBFile; // FDataset.TableName := STR_DB_COMPONENTS_TABLE; // FDataset.PrimaryKey := STR_DB_COMPONENTS_ID; // Adds field definitions { FDataset.FieldDefs.Add('ID', ftString); FDataset.FieldDefs.Add('NAMEEN', ftString); FDataset.FieldDefs.Add('NAMEPT', ftString); FDataset.FieldDefs.Add('HEIGHT', ftString); FDataset.FieldDefs.Add('WIDTH', ftString); FDataset.FieldDefs.Add('PINS', ftString); FDataset.FieldDefs.Add('DRAWINGCODE', ftString);} FDataset.Delimiter := ','; FDataset.FirstLineAsSchema := True; FDataset.Active := True; end; destructor TComponentsDatabase.Destroy; begin FDataset.Free; inherited Destroy; end; procedure TComponentsDatabase.FillStringListWithNames(AStringList: TStrings); var i: Integer; CurField: TField; begin AStringList.Clear; for i := 1 to FDataset.RecordCount do begin FDataset.RecNo := i; CurField := FDataset.FieldByName(STR_DB_COMPONENTS_NAMEEN); AStringList.Add(CurField.Value); end; end; _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal