ZEOS TZTable Verhalten
ZEOS TZTable Verhalten
Hallo Leute,
Bin gerad bei dem Thema ZEOS über folgende Aussage gestolpert:
"Hier ist zu bemerken, dass eine Table in einer C/S-Anwendung eigentlich nur für Tabellen verwendet werden sollte, die sehr
klein sind, weil alle Datensätze beim Öffnen der Table vom Server in den Speicher des
Client übertragen werden. Sie verhält sich wie ein "SELECT * FROM XYZ"-Statement.
Auch ein solches sollte nach Möglichkeit bei C/S-Anwendungen unterbunden werden.
Man sollte immer bestrebt sein, die Ergebnismenge, die vom Server zum Client
übertragen werden muss, so klein wie nur irgend möglich zu halten (vorzugsweise nur ein
Datensatz)."
Für mich heisst das: Auch wenn ich gezielt nur einen Datensatz auswähle (z.B SELECT blabla WHERE ID=1) bekomm ich immer die ganze tabelle der Datenbank in den Speicher gelesen?? Dieses Verhalten ist mir leider nicht schlüssig und sehr unerwünscht da es in zeitkritischen Anwendnugen und grossen Tabellen so nicht mehr zu gebrauchen ist. Gibt es eine Möglichkeit oder Komponente die dieses Verhalten unterbindet? thx
Bin gerad bei dem Thema ZEOS über folgende Aussage gestolpert:
"Hier ist zu bemerken, dass eine Table in einer C/S-Anwendung eigentlich nur für Tabellen verwendet werden sollte, die sehr
klein sind, weil alle Datensätze beim Öffnen der Table vom Server in den Speicher des
Client übertragen werden. Sie verhält sich wie ein "SELECT * FROM XYZ"-Statement.
Auch ein solches sollte nach Möglichkeit bei C/S-Anwendungen unterbunden werden.
Man sollte immer bestrebt sein, die Ergebnismenge, die vom Server zum Client
übertragen werden muss, so klein wie nur irgend möglich zu halten (vorzugsweise nur ein
Datensatz)."
Für mich heisst das: Auch wenn ich gezielt nur einen Datensatz auswähle (z.B SELECT blabla WHERE ID=1) bekomm ich immer die ganze tabelle der Datenbank in den Speicher gelesen?? Dieses Verhalten ist mir leider nicht schlüssig und sehr unerwünscht da es in zeitkritischen Anwendnugen und grossen Tabellen so nicht mehr zu gebrauchen ist. Gibt es eine Möglichkeit oder Komponente die dieses Verhalten unterbindet? thx
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: ZEOS TZTable Verhalten
Wie wäre es mit einer ZQuery und dem entsprechenden Select?
Genau dazu sind Querys doch letztlich da.
Genau dazu sind Querys doch letztlich da.
Johannes
Re: ZEOS TZTable Verhalten
Wenn dann wirklich auch nur die Ergebnismenge eingelesen wird die ich haben möchte ist das natürlich in Ordnung. Hatte es so verstanden, dass selbst dann immer die ganze Tabelle ausgelesen wird. thx
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: ZEOS TZTable Verhalten
Nein...dann wäre ja das SQL-Konzept zu Grunde gerichtet. Wenn du entsprechend geschickt die Abfrage baust, bekommst du mit der TZQuery auch nur den Datensatz zurück, weil der SQL-Server ja auch nur den Datensatz raus liefert.
Was die TZTable da macht, keine Ahnung...hab ich nie verwendet aber nach dem Namen kann ich mir schon vorstellen, das die zur ANzeige ganzer Tabellen ist und somit alles anfordert.
Was die TZTable da macht, keine Ahnung...hab ich nie verwendet aber nach dem Namen kann ich mir schon vorstellen, das die zur ANzeige ganzer Tabellen ist und somit alles anfordert.
Johannes
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ZEOS TZTable Verhalten
Man kann sich das Verhalten zB. bei MySQL mit den Admintools ansehen.
Dort mal mit einer TQuery und mal mit einer TTable die Abfrage machen und sich ansehen, was vom Server wirklich abgefragt wird. Kann recht interessante Ergebnisse und Erkenntnisse bringen
Dort mal mit einer TQuery und mal mit einer TTable die Abfrage machen und sich ansehen, was vom Server wirklich abgefragt wird. Kann recht interessante Ergebnisse und Erkenntnisse bringen

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: ZEOS TZTable Verhalten
Danke werd ich mal sofort ausprobieren.
Gehört zwar hier nicht hin, aber gibts sowas wie EasyQuery (Komponente zum Erstellen von SQLAbfragen per Mausklick) auch für Lazarus?
Gehört zwar hier nicht hin, aber gibts sowas wie EasyQuery (Komponente zum Erstellen von SQLAbfragen per Mausklick) auch für Lazarus?
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: ZEOS TZTable Verhalten
Nein...aber wenn du ein entsprechendes Modell hast, kannst du natürlich fast jedes Programm zum Datenbankdesign nutzen und die SQL-Abfragen generieren.
Bspw. http://www.fabforce.net/dbdesigner4/scr ... rymode.png" onclick="window.open(this.href);return false;
Bspw. http://www.fabforce.net/dbdesigner4/scr ... rymode.png" onclick="window.open(this.href);return false;
Johannes
-
- Beiträge: 9
- Registriert: Sa 31. Mai 2008, 19:37
- OS, Lazarus, FPC: WinVista - Laz 0.9.26-2 - FPC 2.2.2
- CPU-Target: 32Bit
- Wohnort: Wehrheim / Taunus
- Kontaktdaten:
Re: ZEOS TZTable Verhalten
Hi starkard,
wie monta schon ausgeführt hat, ist ein "gescheites" SELECT-Statement immer die bessere Wahl. Und es simmt tatsächlich, was ich in meinem ZeosLib-Tutorial geschriben habe: Intern wird für eine ZTable ein SELECT * FROM tblXYZ abgesetzt und die Ergebnismenge wird auf den Client übertragen.
Was das Thema "EasyQuery" angeht: An Zeos 7 wird im Rahmen der Möglichkeiten (es ist ein Freizeit-Projekt!) geschraubt. In diesem Zuge soll auch der SQL-Statment-Editor überarbeitet werden und genau diese Möglichkeit bieten.
wie monta schon ausgeführt hat, ist ein "gescheites" SELECT-Statement immer die bessere Wahl. Und es simmt tatsächlich, was ich in meinem ZeosLib-Tutorial geschriben habe: Intern wird für eine ZTable ein SELECT * FROM tblXYZ abgesetzt und die Ergebnismenge wird auf den Client übertragen.
Was das Thema "EasyQuery" angeht: An Zeos 7 wird im Rahmen der Möglichkeiten (es ist ein Freizeit-Projekt!) geschraubt. In diesem Zuge soll auch der SQL-Statment-Editor überarbeitet werden und genau diese Möglichkeit bieten.
Keep On Coding!
Michael.
Und denkt daran: Es wird überall nur mit Wasser gekocht ...
Michael.
Und denkt daran: Es wird überall nur mit Wasser gekocht ...
Re: ZEOS TZTable Verhalten
Hast du schon einen Blick auf den Database Desktop (im tools Unterverzeichnis von Lazarus) geworfen?starkard hat geschrieben:
Gehört zwar hier nicht hin, aber gibts sowas wie EasyQuery (Komponente zum Erstellen von SQLAbfragen per Mausklick) auch für Lazarus?
knight
-
- Beiträge: 9
- Registriert: Sa 31. Mai 2008, 19:37
- OS, Lazarus, FPC: WinVista - Laz 0.9.26-2 - FPC 2.2.2
- CPU-Target: 32Bit
- Wohnort: Wehrheim / Taunus
- Kontaktdaten:
Re: ZEOS TZTable Verhalten


Lazarus birgt immer noch das eine oder andere Juwel ... Man muss sich nur umschauen.
Keep On Coding!
Michael.
Und denkt daran: Es wird überall nur mit Wasser gekocht ...
Michael.
Und denkt daran: Es wird überall nur mit Wasser gekocht ...