Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

Konzeptfrage zu SQL: in Schleife(?) auf Bedingung prüfen

  Alt 22. Mai 2013, 20:23
Datenbank: Pervasive • Version: egal • Zugriff über: egal
Hallo zusammen,
ich muss eine Anforderung umsetzen und suche nun eine passende "Strategie".
Gegeben: 1 größere Tabelle, eine Textdatei mit ca. 200 - 3000 Rec-ID-Nummern. Die Tabelle hat momentan ca. 600 000 Datensätze, täglich wachsend.
Nun soll in dieser Tabelle in allen Datensätzen welche einer der Rec-Id's (Identifikation) aus der Textdatei entsprechen, ein bestimmtes Feld gesetzt werden.

Im ersten Ansatz würde ich mir die Textdatei mit den Identifikations-Nummern in eine StringList laden.
Dann in einer Schleife durchlaufen lassen.
Pseudo-Code:
Delphi-Quellcode:
begin
  Qry_Update.SQL.add(UPDATE MEINETABELLE set MEINETABELLE.UpdateFeld = '8' where MEINETABELLE.Identifikation = );
    begin
      Sl_sql := TStringList.Create;
      Sl_sql.LoadFromFile(...);
      for I := 0 to Sl_sql.Count - 1 do begin
        if I <> Sl_sql.Count - 1 then begin
          Qry_Update.SQL.add('Sl_sql[i] or MEINETABELLE.Identifikation = ')
        end else Qry_Update.SQL.add('Sl_sql[i]')
      end;
    end;
end;
Ich habe das jetzt nicht getestet und habe auch keine Vorstellung wie performant das Ganze ist und ob es so überhaupt sinnvoll ist.

Kennt jemand bessere Konzepte für solche Anforderungen oder sollte ich das so umsetzen?

Vielen Dank schon mal vorab für eure Unterstützung!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (22. Mai 2013 um 21:15 Uhr)
  Mit Zitat antworten Zitat