AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 7 MySQL TEXT fields

Ein Thema von KlausV · begonnen am 15. Dez 2024 · letzter Beitrag vom 16. Dez 2024
Antwort Antwort
Seite 2 von 2     12   
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 13:19
Da hast du schon recht, aber:

Zitat:
Ich nutze ganz normal TQUERY.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#12

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 13:32
Ja, aber bei TQuery verlasse ich mich nicht auf RecordCount, weil es eben nicht bei allen Datenbanken sofort auf dem tatsächlichen Wert der zu verarbeitenden Datensätze steht.

Bei DBase wurde beim Lesen von RecordCount das Lesen der gesamten Datenmenge veranlasst. Aber dies erfolgte nicht grundsätzlich für alle beliebigen Datenbanken, sondern nur bei DBase reproduzierbar.

Und im aktuellen Fall scheint es ja nicht so zu sein, sonst müsste die For-Schleife ja korrekt funktionieren, weil ja spätestens bei for x := 1 to qry.RecordCount das holen aller Datensätze engestoßen werden müsste und damit hier ReordCount nicht mehr 1 sein dürfte.

Interessant wäre zu erfahren, ob ein derartiges Konstrukt zu einem geänderten Verhalten führt:
Delphi-Quellcode:
AlleSaetze := qry.RecordCount;
for x := 1 to AlleSaetze do begin
...
end;
Enthält hier dann AlleSaetze die tatsächliche Anzahl an Datensätzen oder auch nur 1?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 13:53
Wobei ja eigentlich die Datenbank weiß, wieviele Datensätze es gibt ....
MySQL weiß nicht, wie viele Datensätze es gibt. Das weiß es noch nicht mal bei einer ungefilterten Tabelle.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#14

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 14:10
Heißt das, dass ich bei einem select * from tabelle per for x := 1 to qry.RecordCount niemals die tatsächliche, datenbankseitige, Anzahl von Datensätzen bekomme, sondern immer nur die Anzahl der Sätze, die gerade beim Client angekommen ist und dieser dann lokal auswerten kann?

Das würde doch dann bedeuten, dass das im Eingangspost gezeigte Konstrukt der For-Schleife (gegen eine MySQL-Datenbank) noch nie (bzw. nur zufällig) korrekt gearbeitet haben kann?!?
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
291 Beiträge
 
Delphi 12 Athens
 
#15

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 14:20
Heißt das, dass ich bei einem select * from tabelle per for x := 1 to qry.RecordCount niemals die tatsächliche, datenbankseitige, Anzahl von Datensätzen bekomme, sondern immer nur die Anzahl der Sätze, die gerade beim Client angekommen ist und dieser dann lokal auswerten kann?

Das würde doch dann bedeuten, dass das im Eingangspost gezeigte Konstrukt der For-Schleife (gegen eine MySQL-Datenbank) noch nie (bzw. nur zufällig) korrekt gearbeitet haben kann?!?
Es kommt letztendlich auf die Query-Komponente bzw deren Einstellungen an.
Ich hatte in einem alten Programm mal das Problem, dass das RecordCount genau so lange wunderbar funktioniert hat, wie die tatsächliche Anzahl der Datensätze kleiner oder gleich 50 war, denn in diesem Fall war 50 meine Page-Größe.
Ob das in deinem Fall auch so war, hängt von den Einstellungen der Query ab, die hier schon ausgiebig diskutiert wurden.

Ich habe aus diesem und anderen Gründen der Verwendung von RecordCount schon vor geraumer Zeit abgeschworen, da man zu viele Dinge beachten muss und es dementsprechend eine riesige Fehlerquelle darstellt.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#16

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 14:30
Ich habe aus diesem und anderen Gründen der Verwendung von RecordCount schon vor geraumer Zeit abgeschworen, da man zu viele Dinge beachten muss und es dementsprechend eine riesige Fehlerquelle darstellt.
Deshalb schrieb ich ja weiter oben schon:
Zitat:
For 1 to RecordCount ist schlicht und einfach eine schlechte Idee, egal welche Datenbankkomponente genutzt wird.
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 15:57
Wie gesagt: Je nach Implementierung zählt RecordCount einfach. Aber auch wenn nicht bzw wenn man selber per COUNT() die Anzahl ermittelt, heißt das nicht, dass sich die Anzahl in Folge nicht ändern kann. Stichworte: Transaktionen/Isolation Level.

Also: for i:=1 to RecordCount ist jedenfalls nicht gut. Besser Next until EOF.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:42 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