Neu:

  Keine Werbeeinblendungen für registrierte User

  ❤ Jede SPENDE hilft unserer Community ❤



  🌹 Danke für Eure Unterstützung 🙏


In Listenfeldern werden nicht alle Werte angezeigt

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Karlaltona
Beiträge: 3
Registriert: Fr 13. Nov 2020, 08:41

In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von Karlaltona » Fr 13. Nov 2020, 10:18

Hallo Leute!

Darf ich mich kurz vorstellen: Seit Jahrzehnten betreibe ich in einem Archiv eine Datenbank. Die Datenbank ist sehr umfangreich. Ich hatte sie ursprünglich mit Paradox erstellt und in der Form funktioniert sie auch seit Jahrzehnten bis heute. Die Haupttabelle umfasst 150.000 Datensätze, einige vermittelnde Tabellen kommen auf über eine halbe Million Einträge.

Paradox ist schon sehr gut, nur leider gibt es seit Jahren keine neuen deutschen Versionen mehr. Die Datenbank soll aber auch noch in vielen Jahren nutzbar sein. Deshalb fand ich es an der Zeit, nach Alternativen zu suchen. Zu Base bin gelangt, weil ich sowieso mit LibreOffice arbeite.

Nun zu meinem Problem: Es geht um die Listenfelder in Formularen. In meinem – nach Vorbild im Base-Handbuch - zusammen gebastelten Formular verwende ich ausschließlich „Tabellen-Steuerelemente“. Per SQL-Befehl (z.B. SELECT "Begriff", "ID" FROM "Begriff" ORDER BY "Begriff";) werden die Werte aus Nachschlagtabellen in Listenfelder übertragen. Das funktioniert prinzipiell auch, nur ab einer bestimmten Größe der zugrunde liegenden Tabellen wird nur noch ein Teil der Werte angezeigt. „Einige“ heißt hier viele tausend Werte. Aber der Rest wird unterschlagen! Kann Base mit diesen Mengen nicht umgehen?

Ich arbeite mit Windows 10, Version 2004, Arbeitsspeicher ist genug vorhanden – 16 GB, auf der Festplatten-Partition sind noch 256 GB frei, daran sollte es also nicht liegen. Woran aber dann? Kennt jemand das Problem? Hat jemand eine Lösung?
Dateianhänge
Datenbankstruktur.jpg
Datenbankstruktur.jpg (116.11 KiB) 235 mal betrachtet

RobertG
Beiträge: 2173
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von RobertG » Fr 13. Nov 2020, 16:11

Hallo Karlaltona,

zuerst einmal zu der verwendeten Datenbank: Bei 150 000 Datensätzen verwendest Du doch wohl nicht die interne HSQLDB, oder? Da würde auch die Argumentation mit Paradox nicht passen. Diese interne Datenbank ist die, die bei der Einführung des Datenbankmoduls in OpenOffice 2.* die aktuelle HSQLDB war. So einer Datenbank, vor allem in der internen Fassung, würde ich nie so viele Daten überlassen.

Es kann sein, dass der Cache für Listenfelder nicht ausreicht, um Inhalte von mehreren 1000 Datensätzen anzuzeigen. Da hilft dann gegebenenfalls, den Inhalt von Listenfeldern einzugrenzen. Schau dazu einmal im aktuellen Handbuch auf S. 477: Listenfelder durch Eingabe von Anfangsbuchstaben einschränken.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Karlaltona
Beiträge: 3
Registriert: Fr 13. Nov 2020, 08:41

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von Karlaltona » Di 17. Nov 2020, 09:50

Hallo Robert,

HSQLDB funktioniert gar nicht, Firebird geht bis zu einer gewissen Menge. Ich habe weiter rumprobiert und denke, ich muss eine andere Datenbank(-Maschine) verwenden. Denn je mehr ich eingebe, desto mehr geht das Ganze in die Knie - nicht nur bei den Listenfeldern. Scheint wirklich nur eine Frage der Menge zu sein. Merkwürdig nur, dass Paradox die Mengen mühelos schafft. Liegt wohl daran, das bei Paradox alles eingebaut ist. Wäre MariaDB eine Alternative? Oder welche Datenbank kann gut mit großen Mengen umgehen?

Wenn ich Base damit einbinden kann, wäre das sehr schön, denn ich brauche eine Oberfläche, die von der Mitarbeiterin im Archiv gut bedient werden kann.

Gruß,
Karlaltona

RobertG
Beiträge: 2173
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von RobertG » Di 17. Nov 2020, 17:06

Hallo Karlaltona,

ich würde die MariaDB nehmen. Für mich persönlich zählt da, dass ich mich mit der Datenbank auskenne, diese (bzw. MySQL) am meisten im Netz als Datenbank genutzt wird und die Treiber ganz ordentlich funktionieren. Alternative wäre für mich noch PostgreSQL, weil auch da die Treiberanbindung recht ordentlich ist.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

F3K Total
Beiträge: 2021
Registriert: So 10. Apr 2011, 10:10

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von F3K Total » Di 17. Nov 2020, 17:29

Moin,
habe mal etwas herumprobiert, sowohl bei ApacheOpenOffice als auch bei LibreOffice, HSQL oder Firebird kann ein Listenfeld maximal 2^15 = 32768 Zeilen anzeigen. Nur in diesen Zeilen arbeitet die Eingrenzung die Robert oben ansprach.
Will man per Listenfeld aus mehr als 10^15 Datensätzen etwas finden, dann sollte man den Suchbereich vorher per SQL eingrenzen.

Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

RobertG
Beiträge: 2173
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von RobertG » Di 17. Nov 2020, 18:02

Hallo R,

das mit der Einschränkung lässt auch größere Mengen zu. Aus dem Handbuch:
Manchmal kann es vorkommen, dass der Inhalt für Listenfelder unübersichtlich groß wird. Damit eine Suche schneller zum Erfolg führt, wäre es sinnvoll, hier den Inhalt des Listenfeldes nach Eingabe eines oder mehrerer Buchstaben einzugrenzen. Das Listenfeld selbst wird erst einmal mit einem SQL-Befehl versehen, der nur als Platzhalter dient. Hier könnte z.B. stehen:

Code: Alles auswählen

SELECT "Name", "ID" FROM "Tabelle" ORDER BY "Name" LIMIT 5 (HSQLDB)
SELECT "Name", "ID" FROM "Tabelle" ORDER BY "Name" ROWS 5 (FIREBIRD)
So wird beim Öffnen des Formulars vermieden, dass Base erst einmal die umfangreiche Liste einlesen muss.
Die Grenze, die Du nennst, gilt natürlich dann, wenn der erste Buchstabe eingegeben wurde. Allerdings sind natürlich Listenfelder mit einem solchen Umfang normal unbedienbar. Ich habe bei einer Datenbank, über Apache/PHP angesprochen, ein Listenfeld mit ca. 2000 Einträgen. Das öffne ich sehr selten. Da erleichtert mir JavaScript zusammen mit den automatischen Ergänzungen von Firefox die Arbeit. Ich tippe einfach los und der passende Begriff wird dann ausgewählt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Karlaltona
Beiträge: 3
Registriert: Fr 13. Nov 2020, 08:41

Re: In Listenfeldern werden nicht alle Werte angezeigt

Beitrag von Karlaltona » Do 19. Nov 2020, 11:50

Danke für die vielen Tipps!

Ich teste jetzt erst einmal MariaDB. Ich habe mich auch schon gefragt, ob so viele Felder im Listenfeld überhaupt gut handhabbar sind. Mir selber macht es nichts aus, wenn ich "zu Fuß" Daten in die Datenbank eingebe. Ich denke nur an die Mitarbeiterin im Archiv, die möglichst bequem und wenig fehleranfällig arbeiten soll.

Ich schaue mal und melde mich, wenn ich schlauer geworden bin.

Gruß,
Karlaltona

Antworten