Seite 1 von 1

Anzahl Datensätze falsch

Verfasst: Di 13. Aug 2013, 18:03
von LO_User
Hallo,

Ich habe in LO 4.1 eine MySQL-Datenbank (Adressen) per ODBC eingebunden und
2 Formulare angelegt (per Assistent)- eins mit einem Datensatz pro Seite, eins
mit der Liste pro Seite. Dort wurden bisher >300 Datensätze angelegt.

Wenn ich das Formular mit dem einzelnen Datensatz aufrufe, erscheint oben
Datensatz 1 von 41 *, bei der Liste steht dort Datensatz 1 von 73 * .
Per "Aktualisieren" ändert sich nichts an der Anzahl der Datensätze, erst wenn
ich zu "letzter Datensatz" gehe, wird die korrekte Anzahl an Datensätzen
angezeigt- in beiden Formularen. Dazu habe ich mal 2 Screenshots angefügt.

Frage- wie kann man LO beibringen, immer die richtige Anzahl an Datensätzen
anzuzeigen bzw. was habe ich übersehen/falsch gemacht?


mfG

Re: Anzahl Datensätze falsch

Verfasst: Di 13. Aug 2013, 18:59
von RobertG
Hallo LO_User,

das ist eine Einstellung des Caches. Es wird erst einmal nur eine kleinere Menge Datensätze in den Cache geladen. Base weiß also nicht, wie viele Datensätze tatsächlich in der Datenbank sind.

Das könnte theoretisch behoben werden, wenn gleichzeitig mit der ersten Abfrage eine weitere kommt, die die gesamten Datensätze der Tabelle zählt. Diese Abfrage müsste dann aber bei jeder Filterung usw. direkt wieder neu gestellt werden.

Du könntest das Ganze natürlich überlisten, indem Du per Makro Dein Formular kurz zum letzten Datensatz springen lässt und danach wieder nach vorne. Damit erzeugst Du aber nur unnötig Datenverkehr übers Netz - vor allem, weil Du ja mit MySQL, also einer externen Datenbank arbeitest.

Gruß

Robert

Re: Anzahl Datensätze falsch

Verfasst: Mi 14. Aug 2013, 00:27
von LO_User
RobertG hat geschrieben:das ist eine Einstellung des Caches.
Kann man da etwas ändern und wann wird der Cache aktualisiert (wird er das überhaupt ? kommt
mir jedenfalls nicht so vor).
Es wird erst einmal nur eine kleinere Menge Datensätze in den Cache geladen. Base weiß
also nicht, wie viele Datensätze tatsächlich in der Datenbank sind.
Na ja- wenn ich LO schließe und dann das Formular neu öffne oder ich gehe auf Aktualisieren,
sollte LO doch erst einmal "nachsehen", wie der aktuelle Stand ist. Aber LO zeigt immer die
gleiche Anzahl an Datensätzen an- das ist alles andere als in Ordnung. Das über irgend welche
Makros zu lösen, ist nicht "die Lösung" ...


mfG RH

Re: Anzahl Datensätze falsch

Verfasst: Mi 14. Aug 2013, 07:44
von RobertG
Hallo RH,
LO_User hat geschrieben:
RobertG hat geschrieben:das ist eine Einstellung des Caches.
Kann man da etwas ändern und wann wird der Cache aktualisiert (wird er das überhaupt ? kommt
mir jedenfalls nicht so vor).
Scroll doch einfach einmal in einer geöffneten Tabelle nach unten. Dann siehst Du, dass die Anzahl der in den Cache eingelesenen Zeilen wächst. Das * zeigt dabei an, dass eben noch nicht alle Daten gelesen wurden.
Es wird erst einmal nur eine kleinere Menge Datensätze in den Cache geladen. Base weiß
also nicht, wie viele Datensätze tatsächlich in der Datenbank sind.
Na ja- wenn ich LO schließe und dann das Formular neu öffne oder ich gehe auf Aktualisieren,
sollte LO doch erst einmal "nachsehen", wie der aktuelle Stand ist. Aber LO zeigt immer die
gleiche Anzahl an Datensätzen an- das ist alles andere als in Ordnung. [/quote]

Natürlich - weil die eingestellte Cache-Größe die gleiche ist. Wenn ich das richtig sehe, dann lädt der Cache noch einmal soviel Daten, wie bereits in der Tabellenansicht zu sehen sind. Öffne ich eine Tabelle mit einer Höhe von 50 Zeilen, so zeigt mir Base 100* an.
Für die Anzeige der Daten schickt Base eine limitierte Abfrage zur Datenbank, damit eben der Netzverkehr nicht so hoch ist. Geschwindigkeitsprobleme fallen dem Normaluser so erst wesentlich später auf als Leuten, die das versuchen zu umgehen. So hatten wir ein besonders großes Geschwindigkeitsproblem beim Start von LO 3.5 - die meisten haben das nicht gemerkt. Aber bei einer Tabelle von 30000 Datensätzen in der internen Datenbank auf den letzten Datensatz zu scrollen nahm über 2 Minuten in Anspruch. Das Öffnen der Tabelle mit der Anzeige 98* hingegen ging direkt.

Du möchtest gerne eine Erweiterung, die neben der Abfrage an die Datenbank auch gleichzeitig erfragt, wie viele Datensätze denn vorhanden sind, auf die die Abfrage zutrifft. Spontan ginge das erst einmal in jeder Abfrage, die Du stellst, als Zusatzanzeige:

Code: Alles auswählen

SELECT "a".* , (SELECT COUNT(ID) FROM "Tabelle") AS "Anzahl" FROM "Tabelle"
Das lässt sich dann auch so gestalten, dass die Bedingungen mit Übernommen werden, nach denen Du die Inhalte Filtern möchtest.
In der grafischen Benutzeroberfläche geht das zur Zeit nicht. Dann müsstest Du einen Bug aufgeben, der dies als Erweiterung wünscht.

Gruß

Robert

Re: Anzahl Datensätze falsch

Verfasst: Mi 14. Aug 2013, 10:41
von LO_User
Hallo,
RobertG hat geschrieben:Öffne ich eine Tabelle mit einer Höhe von 50 Zeilen, so zeigt mir Base 100* an.
Und bei einem Formular mit einem einzelnen Datensatz gibt es diese Einschränkung (Anzahl Zeilen
zur Höhe der Tabelle) nicht- sollte also es nichts (oder nicht viel) mit der Art des Formulars zu tun
haben (theoretisch). Ich habe es gerade mal getestet- bei dem Formular mit einzelnem Datensatz
springt die Anzeige um 21 Datensätze weiter, wenn man über "nächster Datensatz" den zuletzt
angezeigten Wert werreicht hat, bei dem Formular mit der Tabelle/Liste sind es 37- muß man
die Zählweise verstehen?
Was dabei am meisten stört- die unterschiedlichen Anzeigen bei den unterschiedlichen Formularen-
wenn schon eine begrenzte Anzahl an Datensätzen angezeigt wird, dann doch überall die gleiche !?
Für die Anzeige der Daten schickt Base eine limitierte Abfrage zur Datenbank, damit eben
der Netzverkehr nicht so hoch ist.
Mir geht es nicht darum, daß sich LO gleich alle Datensätze aus der DB holt, sondern daß er
beim Öffnen des Formulars (oder bei Aktualisieren) die zur Zeit gültige Anzahl an Datensätzen
anzeigt werden. Das sollte doch den Traffic im Netzwerk nicht extra belasten. außerdem
hängt das ja auch noch von der Art des Netzwerkes/der Netzwerkverbindung ab- da wäre
eine (Aus-) Wahl-Möglichkeit vielleicht nicht die schlechteste Option.

Irgend etwas in den LO Cache-Einstellungen ändern, hilft bei dem Problem leider nicht. Die
LO-Einstellungen zum Thema Base sind da leider auch keine Hilfe- schade.


mfG