AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Query Daten sichern

Ein Thema von Neutral General · begonnen am 30. Aug 2008 · letzter Beitrag vom 30. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Query Daten sichern

  Alt 30. Aug 2008, 16:31
Datenbank: MySQL • Zugriff über: Zeos
Hi,

Wenn ich eine Query öffne, z.B. ganz einfach sowas:

SQL-Code:
SELECT
  *
FROM tabelle;
dann läuft das ganze ja meistens so ab:

Delphi-Quellcode:
Query.Open;
  // Mit den Daten arbeiten.
Query.Close;
Gibt es eine Möglichkeit, das ganze so ablaufen zu lassen:

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

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Query Daten sichern

  Alt 30. Aug 2008, 16:58
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Query Daten sichern

  Alt 30. Aug 2008, 17:13
Hi,

Also das ganz brauche ich wegen folgender rekursiver procedure:

Delphi-Quellcode:
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;
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.

Ich hoffe ich konnte das Problem verständlich erklären.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Query Daten sichern

  Alt 30. Aug 2008, 17:23
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;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Query Daten sichern

  Alt 30. Aug 2008, 17:35
Hi,

Ja das würde funktionieren. Allerdings ist das ganze verdammt langsam. Umso öfter ich das Programm starte, desto schneller geht es

Ok danke.. Ich wollte das zuerst nicht machen, weil ich evtl befürchtet hatte, das die DB dann überfordert ist oder so
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Query Daten sichern

  Alt 30. Aug 2008, 17:41
...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Query Daten sichern

  Alt 30. Aug 2008, 17:47
Zitat von Neutral General:
Ok danke.. Ich wollte das zuerst nicht machen, weil ich evtl befürchtet hatte, das die DB dann überfordert ist oder so
Wie schon gesagt. Da MySQL keine Serverseitigen Curser besitzt hat die DB deine Abfrage schon vergessen sobald du Zugriff auf die Daten hast. Die verwendung einer Instanz hätte schon performancevorteile wenn du prepared Statements verwendest bzw. das in einer SP erledigen läst (ok, das geht wieder ohne das man eine spezielle Query-Instanz verwendet).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Query Daten sichern

  Alt 30. Aug 2008, 18:04
Was genau sind prepared Statements?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Query Daten sichern

  Alt 30. Aug 2008, 18:08
Prepared Statements.
Oder einfach mal im Forum nach "Prepared Statements" für Beispiele suchen ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Query Daten sichern

  Alt 30. Aug 2008, 20:24
Oder die suche nach SQL-Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz