![]() |
Datenbank: MySQL • Zugriff über: Zeos
Query Daten sichern
Hi,
Wenn ich eine Query öffne, z.B. ganz einfach sowas:
SQL-Code:
dann läuft das ganze ja meistens so ab:
SELECT
* FROM tabelle;
Delphi-Quellcode:
Gibt es eine Möglichkeit, das ganze so ablaufen zu lassen:
Query.Open;
// Mit den Daten arbeiten. Query.Close;
Delphi-Quellcode:
:?:
Query.Open;
// DatenSicherung anlegen Query.Close; // Mit Daten Arbeiten. // Datensicherung freigeben Ich habe ja noch nicht viel Ahnung davon. Hab versucht es über ein TDataset zu lösen. Allerdings weiß ich gar nicht, ob TDataset dafür gedacht ist, bzw wofür TDataset überhaupt gedacht ist :mrgreen: Gruß Neutral General |
Re: Query Daten sichern
Was versprichst du dir davon?
Da MySQL keine serverseitige Curser unterstützt belastest du den Server mit einer offenen Query nicht. Möglichkeit wäre mit TClientdataset zu arbeiten. |
Re: Query Daten sichern
Hi,
Also das ganz brauche ich wegen folgender rekursiver procedure:
Delphi-Quellcode:
Vielleicht brauche ich da gar nichts zu erklären. Das Problem ist halt: Wenn ich sagen wir 5 Projekte unter einer gewissen ParentID habe, dann läuft die for-Schleife 5 mal durch. und jedes mal wird GetProjects erneut aufgerufen, wo die Query dann geändert und geöffnet wird usw, wodurch ja die Daten verloren gehen, die in der ersten Instanz mit der 5er-for-Schleife noch gebraucht werden.
procedure GetProjects(ParentID: Integer; Projects: TProjectManager);
var i: Integer; begin with Database.Query.SQL do begin Clear; Add('SELECT'); Add(' *'); Add('FROM projects'); Add('WHERE projects.ParentID = :pid'); end; Database.Query.ParamByName('pid').AsInteger := ParentID; with Database.Query do begin Open; for i := 0 to RecordCount - 1 do begin with Projects.AddProject(Projects.Parent) do begin Name := FieldByName('NAME').AsString; GetProjects(FieldByName('ID').AsInteger, SubProjects); //* end; Next; end; Close; end; end; Ich hoffe ich konnte das Problem verständlich erklären. |
Re: Query Daten sichern
Dann nimm doch eine lokale Query-Instanz
Delphi-Quellcode:
var
qry: TZQuery; begin qry := TZQuery.Create(nil) qry."Database" := MyDatabase; try qry.sql.add(...); ... finally qry.Free; end; end; |
Re: Query Daten sichern
Hi,
Ja das würde funktionieren. Allerdings ist das ganze verdammt langsam. Umso öfter ich das Programm starte, desto schneller geht es :shock: Ok danke.. :) Ich wollte das zuerst nicht machen, weil ich evtl befürchtet hatte, das die DB dann überfordert ist oder so :mrgreen: |
Re: Query Daten sichern
...
|
Re: Query Daten sichern
Zitat:
|
Re: Query Daten sichern
Was genau sind prepared Statements?
|
Re: Query Daten sichern
|
Re: Query Daten sichern
Oder die suche nach SQL-Parameter
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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