Hallo,
also ich benutze ein DBGrid, um Daten aus einer Datasource, Table und
Query Komponente anzuzeigen und zu bearbeiten.
Nun soll in einer Spalte der Wert zum vorigen immer um eins erhöht werden, dass hab ich so gelöst:
Delphi-Quellcode:
function NewID(Tablename, ID_FIELD :
string) : integer;
begin
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('
SELECT MAX('+ID_FIELD+'
)');
Query1.SQL.Add('
FROM '+char(39)+Tablename+char(39));
Query1.Open;
result:= Query1.Fields[0].AsInteger+1;
except
on EXCEPTION do result:= 0;
end;
end;
procedure TabelleAfterInsert(DataSet: TDataSet);
var
i : integer;
begin
TabelleID.AsInteger := NewID('
datenbank.db','
ID');
//+1
Nun wollt ich aber in einer weiteren Spalte die gesamtzahl der Einträge anzeigen lassen. und dazu müsst ich ja alle Einträge ändern, wie mach ich das?
Delphi-Quellcode:
Query1.DataSet.First;
while not Query1.DataSet.EOF do
begin
Tabelle.Database.DataSets[0].FieldValues[ID_FIELD]:= newValue;
DSQuery.DataSet.Next;
end;
...das geht hier leider so nicht.
Danke Tim