Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid alle Werte einer Spalte ändern (https://www.delphipraxis.net/88172-dbgrid-alle-werte-einer-spalte-aendern.html)

Tim Henford 11. Mär 2007 11:56

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:

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

mkinzler 11. Mär 2007 11:59

Re: DBGrid alle Werte einer Spalte ändern
 
Ich würde die Änderung direkt am DataSet durchführen:

SQL-Code:
update <Tabelle> set <Spalte>=<Wert>;

Tim Henford 11. Mär 2007 12:33

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