![]() |
Datenbank: SQLite • Version: ... • Zugriff über: UniDac
TUniQuery liefert falschen RecordCount
Hallo,
über eine TUniQuery mache ich einen ganz normalen
Code:
auf eine SQLite Tabelle.
Select * From
Wenn ich den RecordCount Abfrage liefert er mir ein falsches Ergebnis, mal sagt er ich habe 325 Datensätze in der Tabelle, mal 25, mal 850. Die Tatsächlichen 870 Datensätze gibt er mir aber nie als RecordCount an. Woran kann das liegen? |
AW: TUniQuery liefert falschen RecordCount
Wenn nicht alle Datensätze sofort abgerufen werden, "weiß" die Query noch gar nicht wie viele Datensätze es sind. Um das zu erzwingen kannst du (wenn es bei der Klasse dafür keine Einstellung gibt), ein Query.Last aufrufen und dann die Anzahl auslesen. Allerdings kann das eben ggf. auch deutlich länger dauern, wenn die Tabelle groß ist.
|
AW: TUniQuery liefert falschen RecordCount
Such mal in der UniDAC Hilfe nach "FetchRows". :wink:
|
AW: TUniQuery liefert falschen RecordCount
Moin, Moin,
Du kannst Dir auch mal die FetchOptions ansehen, da kannst Du einstellen wie die Daten von Deiner DB geholt werden sollen : ![]() Beste Grüße Michael |
AW: TUniQuery liefert falschen RecordCount
Das mit den FetchRows habe ich auch gesehen...
Hier ist bei mir der Standard Wert von 25 eingetragen... Das passt dann doch nicht zu den RecordCounts die mir die TUniQuery zurückliefert... oder doch? |
AW: TUniQuery liefert falschen RecordCount
Zitat:
|
AW: TUniQuery liefert falschen RecordCount
Zitat:
Eine dritte Möglichkeit bestünde darin, in einer gesonderten Tabelle den RecordCount aller anderen Tabellen zu verwalten, eventuell mit einer StoredProcedure auf dem Laufenden halten ... |
AW: TUniQuery liefert falschen RecordCount
Wenn ich den RecordCount einer Tabelle zwingend korrekt benötige mache ich einfach ein:
Code:
Das in einer extra Tabelle zu verwalten dürfte schnell recht aufwändig werden, da jedes Insert oder Delete dann diesen Verwaltungsschritt auslösen müsste und dann letztlich auch nur das Ergebnis des obigen SQL je Tabelle in der Verwaltungstabelle speichern müsste.
select count(*) as Anzahl from Tabelle
|
AW: TUniQuery liefert falschen RecordCount
Zitat:
Zitat:
|
AW: TUniQuery liefert falschen RecordCount
Das kann ich mir nicht vorstellen. So etwas würde ja nur in solchen Datenbanken ansatzweise Sinn ergeben, die sehr oft abgefragt, aber eher selten aktualisiert werden. Alle anderen würden hingegen vermutlich merklich ausgebremst werden, da für jeden einzelnen zu löschenden oder einzufügenden Datensatz der Trigger feuern würde.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 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 by Thomas Breitkreuz