Seite 1 von 1
Maximale Textlänge
Verfasst: Di, 23.02.2010 21:44
von teakay
Gibt es eine Maximale Länge für den Feldtype TEXT [VARCHAR]?
Ich habe ein Feld erstellt mit diesem Feldtypen und einer maximalen Länge von 1Mio. Nun habe ich probeweise einige Text in dieses Feld eingefügt. Leider konnte die DB die längeren Texte nicht speichern. Bei Texten mit 5000 oder 10000 Zeichen gibt es kein Problem aber als ich einen Text mit 100000 Zeichen einfügen wollte wurde dieser zunächst auch angezeigt aber nicht gespeichert.
config: Vista Home 32bit OOo 3.2 HSQLDB
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 03:48
von komma4
Siehe die Typenspezifikation in der
HSQLDB-Dokumentation
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 08:05
von teakay
Ich danke dir für den Link, allerdings bin ich jetzt nochmehr verwirrt. Soweit ich das verstehe, ist es so ziehmlich egal wie lang ein Text ist, hauptschae man definiert die länge zuvor. Selbst wenn sie 1G Zeichen enthält. Leider speichert die Tabelle meine längeren Texte nicht ab. Kann dies an einer Begrenzung von OOo liegen?
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 08:14
von komma4
Ja.
Lt. Anzeige im Tabellenentwurf können 2147483647 Zeichen gespeichert werden (VARCHAR od. MEMO). Kann durchaus sein, dass hier ein Fehler vorliegt.
Kann auch daran liegen, dass Du ggfs. über ein Formular einfügst und das verwendete Kontrollelement Beschränkungen aufweist.
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 09:15
von eBayer
Erlaube mir mal eine kritische Frage......
Warum willst Du Textdokumente dieser Größenordnung in der Datenbank speichern? Das mag mit professionellen Datenbanken funktionieren, aber in Deinem Fall schlage ich vor, daß Du Dein Konzept nochmal überdenkst.
Ein gängiger Weg wäre, daß Du in der Datenbank nur den Namen und Pfad des Dokuments hinterlegst und die Dokumente einfach in einem dafür vorgesehenen Ordner speicherst. Mit ganz wenig Aufwand kannst Du die Dokumente aus Deiner Anwendung heraus per Writer aufrufen und mit allem Komfort, den der Writer bietet, bearbeiten, drucken und formatieren.
Gruß eBayer
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 11:25
von teakay
Ich versuche so etwas wie eine einfache Dokumentenverwaltung aufzubauen. Wenn möglich sollen alle Daten in der Datenbank gespeichert sein, für einen einfacheren Transport. So muss ich nur eine Datei auf den Stick ziehen und nicht einen ganzen Ordner. Gerade darin liegt ja der große Vorteil bei OOo, wenn man die integrierte HSQL Datenbank benutzt. Man ist Mobil mit seinen Daten.
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 11:46
von komma4
Der Vorschlag von eBayer hat was.
Neben Performance-Bedenken, die ich Teile, hat das den Vorteil, dass Du noch auch dann noch an Deine aktuellen Texte kommst, wenn die Datenbank mal korrupt ist und Deine Datensicherung ein paar Tage alt.
Und ein Verzeichnis zu kopieren ist so einfach wie die ODB auf den Stick zu ziehen.
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 12:50
von teakay
Ich kann eure bedenken und hinweise verstehen, allerdings geht es darum, wirklich alle daten in der Datenbank zu haben.
Ich habe inzwischen ein wenig weiter experimentiert und dabei heraus gefunden das die maximale Textlänge eines Textfeldes 32767 Zeichen beträgt. Obwohl in den HSQLDB Guide steht das VCHAR mit bis zu 2Gb daten gefüllt werden kann. Es liegt also an dem Textfeld von OOo.
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 13:40
von eBayer
und wenn die DB mal korrupt ist?
Dann rufst Du hier nach Hilfe. Dokumente dieser Größenordnung wirst du nur schlecht rekonstruieren können.
Wenn es Dir zuviel ist, das Verzeichnis mit den Dokumenten per Hand zu kopieren, mach es doch aus Deiner Anwendung mit einem kleinen Makro.
Außerdem mußt Du immer noch einen Unterschied zwischen HSQLDB intern und extern machen. Die interne ist Versionsstände hinter der externen zurück.
Die Entwickler von Base werden sich schon ihre Gedanken gemacht haben, welche Größe ein Formularfeld maximal haben sollte.
Das was Du vorhast geht eindeutig in Richtung Textverarbeitung mit Writer, wie ich es Dir schon einmal vorgeschlagen hatte.
Gruß eBayer
Re: Maximale Textlänge
Verfasst: Mi, 24.02.2010 14:07
von teakay
Wie ich schon zuvor gesagt habe, verstehe ich eure bedenken und teile sie. Aber man versucht ja nun mal immer seinen Kunden zufrieden zustellen.
Mir geht es nur um die situation, dass die Datenbank dazu in der Lage ist, jedoch das Anwenderprogramm es nicht zuläßt, aus welchen gründen auch immer.
Re: Maximale Textlänge
Verfasst: Mo, 01.03.2010 04:18
von komma4
teakay hat geschrieben: jedoch das Anwenderprogramm es nicht zuläßt, aus welchen gründen auch immer.
Das ist die (technische/interne) Grenze eines Textfeldes (max. Stringlänge) - und lässt sich IMHO nicht umgehen.
Re: Maximale Textlänge
Verfasst: Mo, 01.03.2010 10:00
von teakay
Es ist zwar merkwürdig das Base dafür keine geeignete option bietet um längere Texte zu speichern aber ich habe mir nur ander geholfen.
Ich habe die Textlänge auf 30000 begrenzt und einen Counter in das Formular eingebaut. So sieht man immer wieviel man noch zur Verfügung hat.
Re: Maximale Textlänge
Verfasst: Do, 04.03.2010 16:34
von eBayer
Ich bin begeistert.... Superlösung.
Erst müssen es Riesendokumente sein und nun reichen 30.000 Zeichen aus?
Kann nicht verstehen, daß ein guter Vorschlag, der zudem extrem variabel und vor allem sicher ist, nicht angenommen wird.
Wer macht denn eine Textverarbeitung via ooBase-Formular? Das kann nicht DIE Lösung sein!
Mit etwas Überzeugungskraft kann man auch einen kritischen Kunden zur besseren Lösung bringen - oder geht es garnicht um den Kunden sondern um einen schnellen Euro?
Gruß eBayer
Re: Maximale Textlänge
Verfasst: Do, 04.03.2010 16:54
von teakay
Es geht um den Kunden. Der meint leider, es ist alles mit einem Computer machbar und er ist nicht von dem Gegenteil zu überzeugen.
Allerding gefällt ihm meine neu möglichkeit sehr gut.
Du kannst mir glauben das ich das nicht für Geld mache. Das ist ein Freundschaftsdienst und ausserdem erfahre ich so wo die grenzen von OOoBase liegen und selbst lerne ich auch eine ganze menge dazu, vorallem durch dieses Forum. Wäre mein Englisch noch besser könnte ich mich auch im Englischen Forum umsehen aber dafür muss ich noch ein bisschen üben.