Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bearbeiten von markierten Datensätzen im DBGrid

  Alt 22. Okt 2004, 07:28
Hi,

ich habe eine leichte Verbesserung feststellen können. Ich habe nicht mehr für jeden Bookmark einzeln ein Update-Statement abgesetzt, sondern baue das gesamte Statement zuerst aus den Bookmarks zusammen (Oder-Verknüpfung) und schicke es dann ab.
Delphi-Quellcode:
...
 with Query do begin
      SQL.Add('UPDATE position');
      SQL.Add('SET container_ID='+QuotedStr(ContID));
      SQL.Add('WHERE Position_ID='+QuotedStr(DataSet.Fields[0].AsString));

      // Positionen ab dem 2. Bookmark zum Statement hinzufügen
      for i:=1 to Grid.SelectedRows.Count-1 do begin
        DataSet.GotoBookmark(pointer(Grid.SelectedRows.Items[i]));
        SQL.Add('OR Position_ID='+QuotedStr(DataSet.Fields[0].AsString));
      end; // for
      execSQL;
...
Leider behebt diese Lösung das Problem nicht endgültig. Das Neupositionieren des Datensatzzeigers durch 'GotoBookmark' bleibt das Problem. Dieser Aufruf dauert ewig...

Wie kann ich Performace gewinnen, um das Update durchzuführen?
Gruß,

Barnti
  Mit Zitat antworten Zitat