![]() |
Datenbank: ADO • Zugriff über: ADO
DBGrid alle Werte einer Spalte ändern
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:
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?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
Delphi-Quellcode:
...das geht hier leider so nicht.
Query1.DataSet.First;
while not Query1.DataSet.EOF do begin Tabelle.Database.DataSets[0].FieldValues[ID_FIELD]:= newValue; DSQuery.DataSet.Next; end; Danke Tim |
Re: DBGrid alle Werte einer Spalte ändern
Ich würde die Änderung direkt am DataSet durchführen:
SQL-Code:
update <Tabelle> set <Spalte>=<Wert>;
|
Re: DBGrid alle Werte einer Spalte ändern
Danke, aber da bekommm ich irgendwie "Error creating cursor handle"? woran kann das liegen?
::: alles klar, habs gefunden, man muss ExecSQL, anstelle von Query.Open nehmen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz