Discussion:
HSQLDB Datenbank mit OOo
(too old to reply)
Alfred Scheiber
2003-09-15 13:15:41 UTC
Permalink
es gibt eine neue Alpha der HSQLDB unter
http://sourceforge.net/project/showfiles.php?group_id=23316
der Download beträgt incl. Doku nur ca. 1,9MB
hab es heruntergeladen und sogar (stand alone) zum Laufen gebracht
und würde es wirklich auch gerne testen, nur
... Es funktionieren Foreign Keys, Auto-Increment etc. über das
OOo-Gui (was meines Wissens
derzeit keine andere DB (außer ADABAS) mit OOo leistet.
genau das Zusammenspiele mit OO ist mir überhaupt nicht gelaungen.
Gibt es vielleicht irgendeine Anleitung, wie ich gerade eben zu
diesem OOo-Gui damit komme ?
Meine Voraussetzungen sind halt wahrscheinlich nicht sehr gut
dafür, z.Zt. verwende ich beim Datenbankinterface immer nur
dbase-Tabellen, damit kenne ich mich gut aus, aber JDBC u.Ä. sagt mir
eigentlich kaum was.
Schön wäre eine Anleitung wie:
1. Datequellen verwalten ...
2. Neue Datenquelle
3. Ja und jetzt stehe ich eben an: was gibt man hier als
"Datenbanktyp" an (nehme mal an JDBC ?) und dann v.a. als
"Datenquellen-URL" an (hier funktioniert nämlich im Unterschied zu
dbase-Tabelen der Pfad-Auswahlbutton rechts neben dem Eingabefeld
nicht mehr.

Und kann man dann über dieses OO-Interface auch neue Tabellen
erstellen, bearbeiten usw. ?

Vielleicht kann mir da wer weiterhelfen
lg Alfred
Hermann Kienlein
2003-09-15 13:39:56 UTC
Permalink
Hallo Alfred,
Post by Alfred Scheiber
hab es heruntergeladen und sogar (stand alone) zum Laufen gebracht
und würde es wirklich auch gerne testen, nur
dann hast du ja wahrscheinlich schon im Verzeichnis /demo die
runserver.bat (bzw. runserver.sh unter linux) gefunden.
damit startest du eine Server-Instanz der DB. Außerdem würde ich im
Installations-Verzeichnis einen Ordner /data erstellen, dann finden die
Skripte ihren Platz.
Da gibt es dann außerdem noch eine runManager.bat. Falls du damit
arbeitest und dich nicht an einer inMemory-DB anmeldest sondern server
auswählst, sollten diese Einträge 1:1 nach OOo übernommen werden können.
Mit diesem Manager findest du übrigens unter options die Möglichkeit
Testdaten einzufügen. Anschließend findest du dann im /data Verzeichnis
mal einige grundlegende HSQLDB-Skripte.
Im /doc Verzeichnis ist die derzeitige Doku untergebracht. Da gibt es
die verschiedensten Start/Anbindungmöglichkeiten. Aber bleib erstmal bei
deiner Test-DB mit der runserver.bat

jetzt gehe ich mal davon aus dass bis hirher alles läuft ;-)

OOo starten => F4 => neue Datenquelle
JDBC ist ja klar, darunter dann
Treiberklasse: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:hsql://localhost
und User: sa
(dass ist der Standard-mäßige Root-Admin ohne Passwort, denn kann man
später immer noch ändern)

das ganze dann mal sicher, denn nun muß OOo noch mitbekommen wo der
Treiber liegt. Dass geht wie bei allen anderen JDBC-Treibern entweder
dadurch dass die Datei hsqldb.jar im /ext Verzeichnis deine
Java-Runtimeimgebung liegt oder indem du über
Extras => Optionen => Sicherheit:
Classpath => Durchsuchen => hinzufügen und dann den Pfad zu deiner
hsqldb.jar Datei einstellst. Diese Datei findet sich normalerweise im
/lib Verzeichnis von HSQLDB.

Nach einem kurzen Stop von OOo (und dem Schnellstarter) sollte dann ein
Zugriff auf die DB gelingen.


Gruß

Hermann Kienlein
Post by Alfred Scheiber
1. Datequellen verwalten ...
2. Neue Datenquelle
3. Ja und jetzt stehe ich eben an: was gibt man hier als
"Datenbanktyp" an (nehme mal an JDBC ?) und dann v.a. als
"Datenquellen-URL" an (hier funktioniert nämlich im Unterschied zu
dbase-Tabelen der Pfad-Auswahlbutton rechts neben dem Eingabefeld
nicht mehr.
fürs erste muß o.g. genügen. Bei etwas mehr Zeit schreibe ich ne Anleitung.
Post by Alfred Scheiber
Und kann man dann über dieses OO-Interface auch neue Tabellen
erstellen, bearbeiten usw. ?
erstellen ja, ändern derzeit nicht (ist Alpha und ein Bug, sollte
demnächst behoben sein), ich rede hier von der Tabellenstruktur, nicht
von den Inhalten.
Post by Alfred Scheiber
Vielleicht kann mir da wer weiterhelfen
HTH

Hermann Kienlein
Hermann Kienlein
2003-09-15 13:56:25 UTC
Permalink
sorry, kurzer Nachtrag:

die Schreibrechte muß man leider noch anpassen wie unter:
http://dba.openoffice.org/howto/IgnoreDriverPrivileges.html
beschrieben, also einfach das Makro ausführen und en Namen seiner
Datenquelle eintragen

Gruß
Hermann Kienlein
Alfred Scheiber
2003-09-15 21:13:07 UTC
Permalink
Hallo Hermann,
Danke für die Anleitung; leider funktioniert es noch nicht (ganz?)
mit der Anleitung ist es mir möglich, über <Datenquellen verwalten>
eine neue (hsql)-Datenquelle zu erzeugen, dort (auf der 3.
Registerseite "Tabellen") bereits existierende Tabellen zu sehen bzw.
auch eigene zu erstellen,
NUR, wenn ich dann im database-Explorer auf eine dieser
Tabellen(namen) klicke, sehe ich erstens keine Tabelle rechts und
zweitens kommt (meist) eine Fehlermeldung, etweder dass die Daten
nicht geladen werden konnten, oder nicht aktualisiert werden konnten,
manchmal aber auch gar nichts, nur wie gesagt sehen tue ich gar
nichts und dementsprechend kann man auch nichts eingeben.

Habe zuerst gehofft, dass das mit dem erwähnten Schreibrechte-Problem
Post by Hermann Kienlein
http://dba.openoffice.org/howto/IgnoreDriverPrivileges.html
beschrieben, also einfach das Makro ausführen und en Namen seiner
Datenquelle eintragen
hab das Makro also installiert und ausgeführt, den Namen de
Datenquelle angegeben, so wie ich sie vorher erzeugt habe (ist das
richtig so ?),an den Fehlermeldungen hat das aber nichts geändert.
Übrigens nur als Info: der auf obiger Adresse liegende Link zum
Downloaden des Macros stimmt nicht;korrekt wäre
http://dba.openoffice.org/downloads/ und dort die Datei DBATools.zip
herunterladen, wo u.a auch das macro IgnoreDriverPrivileges.xba
enthalten ist.

Ach ja, ich hab meine bisherigen Schritte dokumentiert und versucht
als Anleitung zu schreiben, mit Bildschirmfotos und so, ich könnte
dir das einmal zuschicken zum Überprüfen für eine etwaiige genauere
Anleitung, aber zuerst sollte es wohl noch ganz funktionieren.

lg und danke für die Unterstützung
Alfred
Christian Lohmaier
2003-09-15 21:34:04 UTC
Permalink
Hallo Alfred, *,

[nullquote]

Bei mir hat es geklappt, wenn auch mit der Einschrängung einen
bestehenden Tabellenentwurf nicht nachträglich bearbeiten zu können,
sprich ich kann nachträglich keine Felder hinzufügen.
Aber hier im Detail:
hsqldb läuft im standalone-modus...
Extras|Optionen->Sicherheit beim Classpath die hsqldb.jar hinzufügen
(Installiertes Java: J2SDK 1.4.1_02)
Datenquellen verwalten..
Name: Testdatenbank
Datenbanktyp: JDBC
Datenquellen-URL
jdbc:hsqldb:/home/cl/hsqldb/test (jdbc: wird von OOo eingetragen)
JDBC
Treiberklasse: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:/home/cl/hsqldb/test (jdbc: ist wieder
vorgegeben)
Benutzername: sa

Dann das Makro von
http://dba.openoffice.org/howto/IgnoreDriverPrivileges.html
(per copy & paste übernommen) ausgeführt (auf "Testdatenbank")

Dann konnte ich Daten eingeben.

Layout der erstellten Tabelle:
Feldname Typ
ID Integer [INTEGER IDENTITY] (Autowert: Ja, auch als
Primärschlüssel definiert)
Name Text [VARCHAR] (Eingabe erforderlich)

ciao
Christian
--
NP: Korn - No Way
Alfred Scheiber
2003-09-16 07:02:59 UTC
Permalink
Hallo Christian, hallo Hermann,

bei mir funktioniert es nach wie vor nicht, hab das Bsp. von
Christian nachvollzogen, komme aber genausoweit wie vorher,nämlich
kann die Dabelle in OO noch erstellen, aber zum Anzeigen und Eingeben
gehts nicht mehr: entweder gar nix oder manchmal die Fehlermeldung,
dass Daten nicht geladen werden konnten.
Ich versuch noch einmal genau mein Vorgehen zu beschreiben,
vielleicht könnt ihr da den Fehler entdecken. Also
1.ich starte hsqldb mittels \demo\runServer.bat.
--> das ist bei mir absolut nötig, sonst geht gar keine
Verbindung in OO
2. dann kann ich noch optional runManager.bat starten mit 2
Serveralternativen, die aber beide gleich gut zu funktionieren
scheinen; entweder "HSQL Database Engine Standalone" oder "HSQL
Database Engine Server". Als Treiber,URL und User die gleichen
Angaben wie dann eben in OO, s.u.
Als Treiber gebe ich ein "org.hsqldb.jdbcDriver", als URL
dann:"jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest", (um das
Beispiel von Christian mit eigenem Verz. nachzuvollziehen, genauso
gut funktioniert aber die von Hermann vorgeschlagene Variante, über
//localhost auf die vorhandene Testdatenbank zuzugreifen, das wäre
dann URL: "jdbc:hsqldb:hsql://localhost)
Das "jdbc:" ist genauso wie bei Christian bereits von OO vorgegeben.
3. OOo - F4 - Datenquellen verwalten - Neue Datenquelle
Name: DBTest
URL : "jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest", (um
das Beispiel von Christian mit eigenem Verz. nachzuvollziehen,
genauso gut funktioniert aber die von Hermann vorgeschlagene
Variante, über //localhost auf die vorhandene Testdatenbank
zuzugreifen, das wäre dann URL: "jdbc:hsqldb:hsql://localhost")
Register-Seite 2 JDBC:
Treiber:
URL wieder :
"jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest" Das "jdbc:" ist
beidesmal genauso wie bei Christian bereits von OO vorgegeben.
User: sa
duie unteren Checkboxen zu "Allgemein" lass ich unangetastet
4. Anwenden bzw. ok und schließen; die Datenbank ist im Explorer
sichtbar und es kann offensichtlich auch eine Verbindung zu ihr
hergestellt werden.
5. ich lass das IgnoreDriverPrivileges-Makro ablaufen (hab ich in die
Makro-Verwaltung integriert), gebe dabei als Datenbank "DBTest" ein
6. zurück in Datenquellen -Datenquelen verwalten - DBTest: ung gebe
auf der Registerseite Tabellen eine neue Tabelle ein mit den
gleichen Feldbeschreibungen wie bei Christian.
Hier gibt allerdings den ersten nterschied/Fehler: Wenn ich
versuche eine Index auf ID (integer, autoincrement) su setzen und
diesen speichern will kommt die Fehlermeldung:
"Fehler bei Verbindung mit der Datenquelle" Unexpected Token
ASC in Statement [CREATE INDEX "index1" on "testtab" ("ID" ASC)] "
Auch jeder andere Indizierungversuch bringt immer wieder die gleiche
Meldung. Aber wie gesagt, ansonsten funktioniert es scheinbar, wenn
ich jetzt Datenqullen verwalten schließe, habe ich links im Explorer
auch meine neuen Tabellen.
7. Ich klicke im Database-Explorer auf die soeben erzeugt Tabelle und
es tut sich gar nichts oder es kommt (manchmal, genau kann ich das
noch nicht reproduzieren, entweden beim ersten Mal oder dann nach
einigen weiteren Anklickversuchen wieder) die Fehlermeldung:
" Die Dateninhalte konnten nicht geladen werden. This
function is not supported" wenn man sich dann noch die Details
anzeigen lässt steht da noch "SQL-Status IM001" und "Fehler-Code:-20".


Voila, diese Verhalten kann ich mit verschiedenen Voraussetzungen
(wie eben auch mit //localhost, andere Dateien) reproduzieren, die
Verbindung zur Datenbank ist offensichtlich während der Erstellung
einer neuen Tabelle noch vorhanden, bei Dateneingeben, oder auch bei
Indexerstellung aber nicht (mehr?).
Ach ja System: OOo1.1RC4 auf W2K (das dürfte der einzige Unterschied
zu Christians Beispiel sein, wenn ich sein Verzeichnis mit /home/ ...
richtig verstehe, ist das wohl Linux.
vielleicht weiß wer noch was
Grüße Alfred
Post by Christian Lohmaier
Hallo Alfred, *,
Bei mir hat es geklappt, wenn auch mit der Einschrängung einen
bestehenden Tabellenentwurf nicht nachträglich bearbeiten zu können,
sprich ich kann nachträglich keine Felder hinzufügen.
hsqldb läuft im standalone-modus...
Extras|Optionen->Sicherheit beim Classpath die hsqldb.jar hinzufügen
(Installiertes Java: J2SDK 1.4.1_02)
Datenquellen verwalten..
Name: Testdatenbank
Datenbanktyp: JDBC
Datenquellen-URL
jdbc:hsqldb:/home/cl/hsqldb/test (jdbc: wird von OOo eingetragen)
JDBC
Treiberklasse: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:/home/cl/hsqldb/test (jdbc: ist wieder
vorgegeben)
Benutzername: sa
Dann das Makro von
http://dba.openoffice.org/howto/IgnoreDriverPrivileges.html
(per copy & paste übernommen) ausgeführt (auf "Testdatenbank")
Dann konnte ich Daten eingeben.
Feldname Typ
ID Integer [INTEGER IDENTITY] (Autowert: Ja, auch als
Primärschlüssel definiert)
Name Text [VARCHAR] (Eingabe erforderlich)
ciao
Christian
Christian Lohmaier
2003-09-16 11:04:52 UTC
Permalink
Hallo Alfred,
Post by Alfred Scheiber
Hallo Christian, hallo Hermann,
bei mir funktioniert es nach wie vor nicht, hab das Bsp. von
Christian nachvollzogen, komme aber genausoweit wie vorher,nämlich
kann die Dabelle in OO noch erstellen, aber zum Anzeigen und Eingeben
gehts nicht mehr: entweder gar nix oder manchmal die Fehlermeldung,
dass Daten nicht geladen werden konnten.
Ich versuch noch einmal genau mein Vorgehen zu beschreiben,
vielleicht könnt ihr da den Fehler entdecken. Also
1.ich starte hsqldb mittels \demo\runServer.bat.
--> das ist bei mir absolut nötig, sonst geht gar keine
Verbindung in OO
Das ist bei mir nicht nötig. Ich starte nix extra.
Aber vielleicht ist das ein Muß unter Windows?
Post by Alfred Scheiber
2. [...]
3. OOo - F4 - Datenquellen verwalten - Neue Datenquelle
Name: DBTest
URL : "jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest", (um
das Beispiel von Christian mit eigenem Verz. nachzuvollziehen,
genauso gut funktioniert aber die von Hermann vorgeschlagene
Variante, über //localhost auf die vorhandene Testdatenbank
zuzugreifen, das wäre dann URL: "jdbc:hsqldb:hsql://localhost")
^^ warum ist das leer?
Post by Alfred Scheiber
[...]
Ach ja System: OOo1.1RC4 auf W2K (das dürfte der einzige Unterschied
zu Christians Beispiel sein, wenn ich sein Verzeichnis mit /home/ ...
richtig verstehe, ist das wohl Linux.
Genau. Hast Du auch dieselbe Version der hsqldb? Die AlphaO der 1.7.2?

ciao
Christian
--
NP: Sepultura - Nomad
Hermann Kienlein
2003-09-16 18:20:02 UTC
Permalink
Hallo zusammen,
da bin ich ja mal wieder viel zu spät dran :-)
Post by Hermann Kienlein
Hallo Alfred,
Post by Alfred Scheiber
Hallo Christian, hallo Hermann,
bei mir funktioniert es nach wie vor nicht, hab das Bsp. von
Christian nachvollzogen, komme aber genausoweit wie vorher,nämlich
kann die Dabelle in OO noch erstellen, aber zum Anzeigen und Eingeben
gehts nicht mehr: entweder gar nix oder manchmal die Fehlermeldung,
dass Daten nicht geladen werden konnten.
wenn du soweit kommst eine Tabelle zu erstellen dann klappt die
Verbindung erstmal. Irgendwas läuft aber dann schief, und wenn sich
hsqldb dann auf der (nicht sichtbaren Konsole) verabschiedet kann man
eben für nix mehr garantieren.
Probier mal folgendes:
nach dem runserver.bat starte bitte den runManager.bat und verbinde mit
der server-Instanz. Anschließend mit Options => insert Test Data die
Testdaten eintragen.

<kurzer Ausflug>
wenn du die DB dann wieder beendest solltest du im /data Verzeichnis
einige scripte sehen. Wie ind der hsqldb-docu beschrieben kannst du da
die parameter silent auf false und trace auf true setzten, dann siehst
du etwas mehr. und z.B. aus Netbeans heraus gestartet ist es ja fast
schon komfortabel(na ja, nicht wirklich)
</kurzer Ausflug>

auf diese Daten solltest du dann von OOo aus zugreifen können.
nach ausführen des Makros dann auch schreibend.

Versuch mal zuerst einfache Tabellen zu erstellen. Falls du einen
PrimaryKey mit Autoincrement erstellen willst, nimmst du als FeldTyp
integer identity her. Im OOo dialog lässt du Auto-Increment verwenden
weg, da OOo sonst zweimal Identity bringt und das etwas viel ist. Das
macht aber nichts da hsqldb anschließend richtigerweise den Typ
autoincrement liefert. Also vielleicht mal neue Tabelle => Feld ID mit
INTEGER IDENTITY und WERT VARCHAR, ID als PrimaryKey anklicken und
speichern unter Tabelle1 schließen => sollte klappen

(Beim Testen merkt sich OOo manchmal ein bischen viel, deshalb unter
Extras => Optionen => Datenquellen => Verbindungen: Verbindungen
aufbewahren abwählen)

welche Felder du dann verwendest und wo Fehler auftreten würde mich dann
wieder interessieren :-)
Post by Hermann Kienlein
Post by Alfred Scheiber
Ich versuch noch einmal genau mein Vorgehen zu beschreiben,
vielleicht könnt ihr da den Fehler entdecken. Also
1.ich starte hsqldb mittels \demo\runServer.bat.
--> das ist bei mir absolut nötig, sonst geht gar keine
Verbindung in OO
ansonsten ist der DB-Server nicht gestartet, MySQL etc. muß ja auch
vorher gestartet werden.
Post by Hermann Kienlein
Das ist bei mir nicht nötig. Ich starte nix extra.
Aber vielleicht ist das ein Muß unter Windows?
das sollte unter Linux eigentlich auch so sein. ansonsten hast du
normalerweise eine InMemory-DB, die du erst jedesmal mit Daten befüllen
mußt (oder ich hab ein mitlerweile eingeführtes Feature übersehen)
Post by Hermann Kienlein
Post by Alfred Scheiber
2. [...]
3. OOo - F4 - Datenquellen verwalten - Neue Datenquelle
Name: DBTest
URL : "jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest", (um
das Beispiel von Christian mit eigenem Verz. nachzuvollziehen,
genauso gut funktioniert aber die von Hermann vorgeschlagene
Variante, über //localhost auf die vorhandene Testdatenbank
zuzugreifen, das wäre dann URL: "jdbc:hsqldb:hsql://localhost")
^^ warum ist das leer?
da gehört sich natürlich org.hsqldb.jdbcDriver hin
Post by Hermann Kienlein
Post by Alfred Scheiber
[...]
Ach ja System: OOo1.1RC4 auf W2K (das dürfte der einzige Unterschied
zu Christians Beispiel sein, wenn ich sein Verzeichnis mit /home/ ...
richtig verstehe, ist das wohl Linux.
Genau. Hast Du auch dieselbe Version der hsqldb? Die AlphaO der 1.7.2?
hoffentlich, vorher geht gar nix

Gruß

Hermann Kienlein
Christian Lohmaier
2003-09-16 19:05:39 UTC
Permalink
Hallo Hermann,
Post by Hermann Kienlein
da bin ich ja mal wieder viel zu spät dran :-)
:-)
Post by Hermann Kienlein
[...]
Post by Christian Lohmaier
Post by Alfred Scheiber
Ich versuch noch einmal genau mein Vorgehen zu beschreiben,
vielleicht könnt ihr da den Fehler entdecken. Also
1.ich starte hsqldb mittels \demo\runServer.bat.
--> das ist bei mir absolut nötig, sonst geht gar keine
Verbindung in OO
ansonsten ist der DB-Server nicht gestartet, MySQL etc. muß ja auch
vorher gestartet werden.
Post by Christian Lohmaier
Das ist bei mir nicht nötig. Ich starte nix extra.
Aber vielleicht ist das ein Muß unter Windows?
das sollte unter Linux eigentlich auch so sein. ansonsten hast du
normalerweise eine InMemory-DB, die du erst jedesmal mit Daten befüllen
mußt (oder ich hab ein mitlerweile eingeführtes Feature übersehen)
Nö, ich muß nicht jedesmal Daten eingeben - scheint so als hättest Du
ein Feature übersehen :-)
[doc/hsqlGuide.html]
# [...]
# Memory Only Databases
# It is possible to run HSQLDB in a way that the database is not
# persistent and exists entirely in random access memory. As no
# information is written to disk, this mode should be used only for
# internal processing of application data, in applets or certain special
# applications. This mode is specified by using a dot "." as the database
# file path.

Ich habe aber keinen Punkt, sondern einen entsprechenden Pfad angegeben,
und da setzt er mir auch schön die Dateien rein (name.script,
name.properties - ist also keine "cached" Datenbank, wobei mir da der
Unterschied auch nicht ganz klar ist)
Ist zwar trotzdem eine Memory-Tabelle (aber keine Memory-only
Datenbank!):

# Memory tables are the default type when the CREATE TABLE command is
# used. Their data is held entirely in memory but any change to their
# structure or contents is written to the <dbname>.script file. The script
# file is read the next time the database is opened, and the MEMORY tables
# are recreated with all their contents.

Und das funktioniert auch - allerdings ist die Datenbank noch winzig -
halt zum Ausprobieren.
Post by Hermann Kienlein
Post by Christian Lohmaier
Post by Alfred Scheiber
2. [...]
3. OOo - F4 - Datenquellen verwalten - Neue Datenquelle
Name: DBTest
URL : "jdbc:hsqldb:/G:/OpenOffice-personal/db/dbtest", (um
das Beispiel von Christian mit eigenem Verz. nachzuvollziehen,
Hier habe ich gerade folgendes gefunden:
[doc/hsqlGuide.html]
# The database file path format can be specified using forward slashes in
# Windows hosts as well as Linux hosts. So relative paths or paths that
# refer to the same directory on the same drive can be identical. For
# example if your database path in Linux is /opt/db/testdb and you create
# an identical directory structure on the C: drive of a Windows host, you
# can use the same URL in both Windows and Linux:
#
# Connection c = DriverManager.getConnection("jdbc:hsqldb:/opt/db/testdb", "sa", "");

ciao
Christian
--
NP: Rage Against The Machine - Fistful Of Steel
Hermann Kienlein
2003-09-16 19:42:14 UTC
Permalink
Hi Christian,
Post by Christian Lohmaier
Nö, ich muß nicht jedesmal Daten eingeben - scheint so als hättest Du
ein Feature übersehen :-)
[doc/hsqlGuide.html]
# [...]
# Memory Only Databases
# It is possible to run HSQLDB in a way that the database is not
# persistent and exists entirely in random access memory. As no
# information is written to disk, this mode should be used only for
# internal processing of application data, in applets or certain special
# applications. This mode is specified by using a dot "." as the database
# file path.
Ich habe aber keinen Punkt, sondern einen entsprechenden Pfad angegeben,
und da setzt er mir auch schön die Dateien rein (name.script,
name.properties - ist also keine "cached" Datenbank, wobei mir da der
Unterschied auch nicht ganz klar ist)
Ist zwar trotzdem eine Memory-Tabelle (aber keine Memory-only
tja, mittlerweile ist die DB so schlau dass wenn man einen Pfad angibt
sie diesen auch nutzt ;-)
Post by Christian Lohmaier
# Memory tables are the default type when the CREATE TABLE command is
# used. Their data is held entirely in memory but any change to their
# structure or contents is written to the <dbname>.script file. The script
# file is read the next time the database is opened, and the MEMORY tables
# are recreated with all their contents.
Und das funktioniert auch - allerdings ist die Datenbank noch winzig -
halt zum Ausprobieren.
aber das bezieht sich auf das Verhalten der DB zur Laufzeit.
Standard-mäßig werden die Tabellen quasi einfach in den Speicher geladen
und sind so halt einfach schnell im Zugriff, aber das ist schon immer so.

Gruß
Hermann

PS:
schon auf Fehler gestoßen? (außer den ALTER TABLE ... ADD CONSTRAINT
oder COLUMN)
Christian Lohmaier
2003-09-16 20:13:53 UTC
Permalink
Hallo Hermann,
Post by Hermann Kienlein
Post by Christian Lohmaier
# Memory tables are the default type when the CREATE TABLE command is
# used. Their data is held entirely in memory but any change to their
# structure or contents is written to the <dbname>.script file. The script
# file is read the next time the database is opened, and the MEMORY tables
# are recreated with all their contents.
Und das funktioniert auch - allerdings ist die Datenbank noch winzig -
halt zum Ausprobieren.
aber das bezieht sich auf das Verhalten der DB zur Laufzeit.
aber?
Post by Hermann Kienlein
Standard-mäßig werden die Tabellen quasi einfach in den Speicher geladen
und sind so halt einfach schnell im Zugriff, aber das ist schon immer so.
Ja. Und das funktioniert ja auch. Deshalb verstehe ich Dein aber nicht
so ganz..
Post by Hermann Kienlein
schon auf Fehler gestoßen? (außer den ALTER TABLE ... ADD CONSTRAINT
oder COLUMN)
Ich hab mit Datenbanken nicht viel am Hut, und bin erst am herantasten,
aber einen habe ich noch:
Wenn man typ LONGVARCHAR (Memo) auswählt, gibt OOo eine Textlänge von 50
vor, hasqldb mag aber das resultierende CREATE TABLE-Statement nicht,
deshalb muß man die 50 löschen bevor man speichern kann.

ciao
Christian
--
NP: Bush - Bomb
Hermann Kienlein
2003-09-17 03:42:31 UTC
Permalink
Post by Alfred Scheiber
Hallo Hermann,
Post by Hermann Kienlein
Post by Christian Lohmaier
# Memory tables are the default type when the CREATE TABLE command is
# used. Their data is held entirely in memory but any change to their
# structure or contents is written to the <dbname>.script file. The script
# file is read the next time the database is opened, and the MEMORY tables
# are recreated with all their contents.
Und das funktioniert auch - allerdings ist die Datenbank noch winzig -
halt zum Ausprobieren.
aber das bezieht sich auf das Verhalten der DB zur Laufzeit.
aber?
es gibt auch text-tables und cached tables, die auf Platte geschrieben
werden, sollten die Tabellen mal zu groß werden
Post by Alfred Scheiber
Post by Hermann Kienlein
Standard-mäßig werden die Tabellen quasi einfach in den Speicher geladen
und sind so halt einfach schnell im Zugriff, aber das ist schon immer so.
Ja. Und das funktioniert ja auch. Deshalb verstehe ich Dein aber nicht
so ganz..
unglückliche ausdrucksweise
Post by Alfred Scheiber
Post by Hermann Kienlein
schon auf Fehler gestoßen? (außer den ALTER TABLE ... ADD CONSTRAINT
oder COLUMN)
Ich hab mit Datenbanken nicht viel am Hut, und bin erst am herantasten,
Wenn man typ LONGVARCHAR (Memo) auswählt, gibt OOo eine Textlänge von 50
vor, hasqldb mag aber das resultierende CREATE TABLE-Statement nicht,
deshalb muß man die 50 löschen bevor man speichern kann.
danke

Hermann
Manfred Usselmann
2003-09-21 15:41:26 UTC
Permalink
Hallo,

On Tue, 16 Sep 2003 20:20:02 +0200
Post by Hermann Kienlein
Post by Christian Lohmaier
Post by Alfred Scheiber
Ich versuch noch einmal genau mein Vorgehen zu beschreiben,
vielleicht könnt ihr da den Fehler entdecken. Also
1.ich starte hsqldb mittels \demo\runServer.bat.
--> das ist bei mir absolut nötig, sonst geht gar keine
Verbindung in OO
ansonsten ist der DB-Server nicht gestartet, MySQL etc. muß ja auch
vorher gestartet werden.
Ja, sicher der Normalfall bei einer Datenbank. Aber hsqldb braucht nicht
unbedingt einen laufenden Server. Der Client-Teil kann auch direkt
zugreifen.
Post by Hermann Kienlein
Post by Christian Lohmaier
Das ist bei mir nicht nötig. Ich starte nix extra.
Aber vielleicht ist das ein Muß unter Windows?
das sollte unter Linux eigentlich auch so sein. ansonsten hast du
normalerweise eine InMemory-DB, die du erst jedesmal mit Daten
befuellen mußt (oder ich hab ein mitlerweile eingefuehrtes Feature
uebersehen)
Zwischen In-Memory-DB und Server Engine gibt es dazwischen noch die
Standalone Engine.

Siehe hsqldb/doc/hsqlBeginnersGuide.html, Kapitel 'HSQL Engine Modes'.

Da greift der Client direkt auf die Datenbank zu, was keinen Server und
keine Netzwerkresourcen benoetigt.

Diesen Modus finde ich ideal, um eine lokale Datenbank in OOo
einzubinden.

So koennte man z.B. die Bibliography-Datenbank als hsql-Datenbank
zusammen mit hsqldb.jar und einer passenden Konfiguration mitliefern.
Die Datenbank waere dann, Java vorausgesetzt, sofort verwendbar, ohne
dass noch ein Server hochgefahren werden muesste, etc..


Gruesse,
Manfred
--
________________________________________________________________________
Manfred Usselmann usselmann.m-***@public.gmane.org
Hermann Kienlein
2003-09-21 15:52:39 UTC
Permalink
Hallo Manfred,
Post by Manfred Usselmann
Zwischen In-Memory-DB und Server Engine gibt es dazwischen noch die
Standalone Engine.
ja, aber die hatte ich im Lauf der Zeit total übersehen. Da bin ich erst
durch diesen Thread und einigen Hinweisen wieder draufgestossen worden.
Post by Manfred Usselmann
Siehe hsqldb/doc/hsqlBeginnersGuide.html, Kapitel 'HSQL Engine Modes'.
Da greift der Client direkt auf die Datenbank zu, was keinen Server und
keine Netzwerkresourcen benoetigt.
Diesen Modus finde ich ideal, um eine lokale Datenbank in OOo
einzubinden.
deshalb habe ich ja auch genau diesen Modus in meiner Kurz-Anleitung
beschrieben :-)
Post by Manfred Usselmann
So koennte man z.B. die Bibliography-Datenbank als hsql-Datenbank
zusammen mit hsqldb.jar und einer passenden Konfiguration mitliefern.
Die Datenbank waere dann, Java vorausgesetzt, sofort verwendbar, ohne
dass noch ein Server hochgefahren werden muesste, etc..
genauso wie alle anderen templates die eine DB benötigen (würden)

Gruß
Hermann

Alfred Scheiber
2003-09-16 19:56:40 UTC
Permalink
Hallo Cristian,
Post by Christian Lohmaier
...
Genau. Hast Du auch dieselbe Version der hsqldb? Die AlphaO der
1.7.2?
Eben nicht, ich hab die Version 1.7.1, weil da gestanden ist, dass
das die "stable" ist, "konservativ"-vorsichtig wie - allerdings nur
bei Programmierzeugs- meist bin, habe ich halt das runtergeladen.
Heute Abends werde ich aber die Alpha= runterladen und alles nochmals
versuchen, vielleicht war es ja wirklich nur das.
grüße Alfred
Alfred Scheiber
2003-09-16 20:48:22 UTC
Permalink
Hallo an alle db-Interessierten,
danke für eure Bemühungen, es war tatsächlich nur die alte Version !
Jetzt gehts hier auch mit w2k alles genauso wie von euch beschrieben.
Na jetzt kann ich dann ja auch einmal ordentlich testen.
Besteht eigentlich Interesse an meiner Installations-Doku?, hat
ziemlich viele Screen-Shots
lg from Austria
Alfred
Post by Christian Lohmaier
Genau. Hast Du auch dieselbe Version der hsqldb? Die AlphaO der 1.7.2?
Hermann Kienlein
2003-09-16 19:59:31 UTC
Permalink
Hi Alfred,
Post by Alfred Scheiber
Hallo an alle db-Interessierten,
danke für eure Bemühungen, es war tatsächlich nur die alte Version !
Jetzt gehts hier auch mit w2k alles genauso wie von euch beschrieben.
Na jetzt kann ich dann ja auch einmal ordentlich testen.
Besteht eigentlich Interesse an meiner Installations-Doku?, hat
ziemlich viele Screen-Shots
grundsätzlich ja, aber wart erstmal bis die Alpha zur Beta wird(oder so)
(sorry, ich will dich wirklich nicht bremsen, aber derzeit macht das
nicht viel Sinn, es kann sich noch zu viel ändern, und manchmal ist es
schwieriger eine Änderung nachzufahren als was neu zu schreiben.)
Bleib einfach auf der Liste oder lies die dev -Liste einfach auch mit.


Gruß aus der Oberpfalz

Hermann Kienlein
Marc Bächinger
2003-09-16 11:08:09 UTC
Permalink
Hi,
Post by Christian Lohmaier
Bei mir hat es geklappt, wenn auch mit der Einschrängung einen
bestehenden Tabellenentwurf nicht nachträglich bearbeiten zu können,
sprich ich kann nachträglich keine Felder hinzufügen.
das war bei mir ähnlich. Aber als ich dem Benutzer sa ein Passwort verpasst
habe hats geklappt. So hab ich das zumindest wahrgenommen.


gruss
Christian Lohmaier
2003-09-16 19:30:35 UTC
Permalink
Hallo Marc,
Post by Marc Bächinger
Post by Christian Lohmaier
Bei mir hat es geklappt, wenn auch mit der Einschrängung einen
bestehenden Tabellenentwurf nicht nachträglich bearbeiten zu können,
sprich ich kann nachträglich keine Felder hinzufügen.
das war bei mir ähnlich. Aber als ich dem Benutzer sa ein Passwort verpasst
habe hats geklappt. So hab ich das zumindest wahrgenommen.
Hat bei mir nicht funktioniert.
Unexpected token: feld in statement [ALTER TABLE "tabelle" ADD "feld"]

ciao
Christian
--
NP: Marilyn Manson - Kinderfeld
Hermann Kienlein
2003-09-16 19:46:05 UTC
Permalink
Hi,
Post by Christian Lohmaier
Hat bei mir nicht funktioniert.
Unexpected token: feld in statement [ALTER TABLE "tabelle" ADD "feld"]
wie gesagt, das ist bekannt und wird bearbeitet, es muß eigentlich nur
noch ein Weg gefunden werden, dass hsqldn weiß onb OOo nun ADD COLUMN
oder ADD CONSTRAINT oder ADD ... meint
dann klappts


CU
Hermann
Christian Lohmaier
2003-09-16 20:24:31 UTC
Permalink
Hi*,
Post by Hermann Kienlein
Post by Christian Lohmaier
Hat bei mir nicht funktioniert.
Unexpected token: feld in statement [ALTER TABLE "tabelle" ADD "feld"]
wie gesagt, das ist bekannt und wird bearbeitet, es muß eigentlich nur
noch ein Weg gefunden werden, dass hsqldn weiß onb OOo nun ADD COLUMN
oder ADD CONSTRAINT oder ADD ... meint
dann klappts
Jup, bis dahin kann man ja das SQL-Statement direkt ausführen..

ciao
Christian
--
NP: Nirvana - Aneurysm
Continue reading on narkive:
Loading...