Base HSQL mehrbenutzerfähig

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Jetzt habe ich endlich mit viel Arbeit eine Open-Office Base-Datenbank gebaut mit allen möglichen Formularen und Berichten und will das ganze in unserer Firma installieren und auch meinem Chef vorführen, da stelle ich fest, dass HSQL nicht mehrbenutzerfähig ist.

Toll !!


Hat schon mal einer das hier

http://www.oooforum.org/forum/viewtopic ... hlight=lck

ausprobiert?

Wie wäre es, wenn ich die Tabellen nach MS-Access kopiere (MySQL), und meine Datenbank mit dem Verbindungsmanager dann darauf zurückgreift. Die Lösung müßte doch mehrbenutzerfähig sein, oder? Habe ich schon mal gemacht. Aber geht es denn nicht ohne Microsoft?

Gruß Bernd!
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Base HSQL mehrbenutzerfähig

Beitrag von eBayer »

MySQL wäre die einfachste und trotzdem leistungsfähige Multiuser-Variante...... und hat NICHTS mit Microsoft zu tun.
Den Treiber für MySQL gibt es als Extension von oo Download.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Äh... Ich habe da was nicht verstanden.

Die Ext. hier http://extensions.services.openoffice.o ... _connector habe ich installiert.

Und jetzt??? Die Ext. ist da, aber ich sehe keinen Unterschied. Was kann ich jetzt damit machen?

Oder war das nur, um MySQL-Datenbanken in OpenOffice-einzubinden. Ein MySQL-Connector ist ja standardmäßig bei BASE mit dabei, dazu brauche ich kein neues Ext. Mein Problem ist ja: Wie krieg ich eine BASE-Datenbank in eine neue MySQL-Datenbank umgewandelt. Oder: Wie mache ich eigentlich (außer mit ACCESS) eine MySQL-Datenbank?

Gruß Bernd!
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Base HSQL mehrbenutzerfähig

Beitrag von hol.sten »

NTClient hat geschrieben:da stelle ich fest, dass HSQL nicht mehrbenutzerfähig ist. Toll !!
HSQLDB selbst ist sehr wohl mehrbenutzerfähig (siehe z. B. http://hsqldb.org/doc/guide/guide.html#N10553). Eines der Feature von HSQLDB ist, dass man es als eingebettetes Datenbanksystem nutzen kann. Wenn man dieses Feature in OOo Base nutzt hat man den Vorteil, dass man sich nicht mit einer Datenbank beschäftigen muss. Dies ist jedoch mit dem von dir nun festgestellten Nachteil der nicht möglichen Mehrbenutzerfähigkeit verbunden.
NTClient hat geschrieben:Hat schon mal einer das hier http://www.oooforum.org/forum/viewtopic ... hlight=lck ausprobiert?
Cooler Link. Ich lese und schreibe zwar noch immer regelmäßig dort, der Link ist mir aber nicht aufgefallen. Und ausprobiert habe ich ihn auch nicht.

Mit den Themen HSQLDB embedded mode und HSQLDB server mode habe ich mich jedoch auch schon mal befasst und hierzu beigetragen: http://user.services.openoffice.org/en/ ... 13&t=12117. Dort findet man in knapper Form beschrieben, wie man aus einer eingebetteten OOo Datenbank eine Datenbank im HSQLDB Server Mode macht. Damit wird die HSQLDB mehrbenutzerfähig.
NTClient hat geschrieben:Oder war das nur, um MySQL-Datenbanken in OpenOffice-einzubinden.
Ja.
NTClient hat geschrieben:Ein MySQL-Connector ist ja standardmäßig bei BASE mit dabei, dazu brauche ich kein neues Ext.
Das ist falsch. OOo Base bietet zwar im OOo Base Wizard Unterstützung für MySQL und kennt auch den Namen der MySQL JDBC Treiber Klasse, bringt diesen aber nicht mit. Diesen muss man sich erst besorgen und in OOo installieren, sonst funktioniert der Test der Treiber-Klasse nicht.
NTClient hat geschrieben:Wie mache ich eigentlich eine MySQL-Datenbank?
Dazu findet man mit Google und den Suchworten "migrate hsqldb mysql" reichlich Treffer, wie z. B.:
- http://confluence.atlassian.com/display ... B+to+MySQL
- http://wiki.alfresco.com/wiki/Migrating_from_HSQL
Oder man versucht es mit OOo Calc über eine CSV-Datei und dem Import von CSV-Dateien in MySQL:
- http://www.php-faq.de/q-mysql-csv-import.html
- http://www.issociate.de/board/post/1763 ... ySQL?.html
Um in OOo Calc aus Tabellen CSV-Dateien zu machen, drückt man einmal "F4" und kann dann aus allen in OOo Base registrierten Datenquellen Daten nach OOo Calc übernehmen und dann natürlich als CSV speichern.
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Nee - ich raff' das nicht:

MySQL-Workbnch habe ich installiert. Läuft auch, mit ein wenig Übung könnte ich sogar eine Datenbank bauen, wenngleich ich noch nicht das Fenster gefunden habe, wo ich Beziehungen zwischen Tabellen erzeugen kann. Eine Testdatenbank habe ich sogar hergestellt.

Schön wäre jedoch, wenn ich die Tabelleninhalte meiner odb importieren könnte.

Das eigentliche Problem ist aber der MySQL-Connector. Die Ext habe ich ja schon installiert. Aber wo ist der Nutzen? Mit dem BASE-Verbindungsmanager komme ich trotzdem nicht weiter.

Die MySQL-Workbench-Datenbank ist im Netzwerk unter \\abc\data\test.mwb gespeichert. (Windows 2000 Server)

Was muss ich nun unter Datenbankname eintragen?
Was muss ich unter Server/Port eintragen?
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Base HSQL mehrbenutzerfähig

Beitrag von hol.sten »

NTClient hat geschrieben:Nee - ich raff' das nicht:
Dann tut es mir leid. Offensichtlich haben meine Beschreibungen für dich auch in diesem etwas älteren Thread viewtopic.php?f=8&t=22088&start=0&hilit=mysql nicht zur Erklärung gereicht. Dann habe ich auch keine Idee, wie ich dir hier weiterhelfen kann.
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Ah – Gut, dass du mich daran erinnerst! An den Versuch habe ich ja gar nicht mehr gedacht. Ist ja auch schon ein Jahr her. Ich werde das Thema neu aufgreifen. Vielleicht bringt die Summe aller Erkenntnise und das neue OO 3.2 eine Lösung.

Gruß Bernd!
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Konnte mir auf die Schnelle nicht anders helfen, als es mit ACCESS durchzuziehen. („Ich bin jung und brauche das Geld“). Die A**-Datenbank enthält nur die Tabellen und die Bezieheungen. Ich kann ja später immer noch die A**-Datenbank in eine MySQL-Datenbank umwandeln – wenn ich das mit MySQL mal verstanden habe.

Habe nun die OO-Base vie ACCESS-Connector mit der A**-Datenbank verbunden. So brauche ich A** nur im Hintergrund und kann das komplette Frontend von OOorg benutzen. Klappt alles, bis auf: In der OOBase kann ich nur Tabelleneinträge ändern. Ich kann keine Tabelleneinträge einfügen oder löschen.

Wenn ich direkt über ACCESS in die Tabelle gehe, funzt alles.

Bin etwas ratlos. Da sind doch sicher irgendwelche Zugriffsrechte im Weg, oder?
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Habe das mit ACCESS wieder sausen lassen und meinen Link von oben ausprobiert. Folgende Anleitung (nur bis OpenOffice3.2):

1.Die java.exe ist gewöhnlicherweise vorinstalliert, weil Openoffice JRE schon bei der Installation als gegeben voraussetzt. Bei mir ist sie unter c:\Programme\java\jre\java.exe zu finden.
2.hsqldb.jar wird mit OpenOffice mitgeliefert, zu finden uner c:\programme\openoffice 3\basis\program\classes\hsqldb.jar.
3.folgende batch-Datei schreiben, speichern und (später dann) starten (die Pfade jeweils anpassen):
@echo off
set javapath=C:\Program Files\Java\jre6\bin\Java.exe
set jarpath=C:\Program Files\openoffice\basis\program\classes\hsqldb.jar
"%javapath%" -cp "%jarpath%" org.hsqldb.Server -database.0 file:mydb
exit
4.Nach dem start werden im Verzeichnis, in dem sich die batch-Datei befindet die Dateien mydb.log, mydb.properties und mydb.script angelegt. Java.exe läuft in einem DOS-Fenster im Hintergrund.
5.Base starten und unter Extras-Optionen-Java folgende Einträge machen:
Eine Java-Laufzeitumgebung verwenden: ja
Für alle inst. Versionen: über „Class-Path“ - „Archive hinzufügen“ die hsqldb.jar hinzufügen


6.OpenOffice neu starten.
7.Base starten
8.Verbindung zu einer bestehenden Datenbank herstellen
9.JDBC wählen
10.Datenquellen URL: [ jdbc: ] hsqldb:hsql://localhost/;default_schema=true
11.JDBC Treiberklasse: org.hsqldb.jdbcDriver
12. Benutzername habe ich freigelassen.

habe ich gemacht. Auf dem Rechner A, auf dem ich das gemacht habe, funktioniert auch alles. Wenn ich die Datenbank auf diesem Rechner A von einem anderen Rechner B aus öffne, startet BASE die Datenbank ordnungsgemäß, wenn ich aber in die Tabellenansicht wechsele, erscheint „Verbindung konnte nicht hergestellt werden, socket creation error, SQL-Status: 08000, Fehlercode: -80“. Wenn ich die batch-Datei auch auf dem Rechner B starte und dann die Datenbank öffne, gelange ich zwar in die Tabellenansicht, sehe aber keine Tabellen.

Wenn ich die Datenbank auf einem Rechner C ablege, kann ich sie immer noch von Rechner A aus öffnen. Von Rechner B aus geht das nicht, obwohl dort doch alles identisch mit Rechner A eingestellt ist.


Gruß Bernd!
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Base HSQL mehrbenutzerfähig

Beitrag von hol.sten »

NTClient hat geschrieben:...
10.Datenquellen URL: [ jdbc: ] hsqldb:hsql://localhost/;default_schema=true
...
habe ich gemacht. Auf dem Rechner A, auf dem ich das gemacht habe, funktioniert auch alles. Wenn ich die Datenbank auf diesem Rechner A von einem anderen Rechner B aus öffne, startet BASE die Datenbank ordnungsgemäß, wenn ich aber in die Tabellenansicht wechsele, erscheint „Verbindung konnte nicht hergestellt werden, socket creation error, SQL-Status: 08000, Fehlercode: -80“. Wenn ich die batch-Datei auch auf dem Rechner B starte und dann die Datenbank öffne, gelange ich zwar in die Tabellenansicht, sehe aber keine Tabellen.

Wenn ich die Datenbank auf einem Rechner C ablege, kann ich sie immer noch von Rechner A aus öffnen. Von Rechner B aus geht das nicht, obwohl dort doch alles identisch mit Rechner A eingestellt ist.
Hmmmm, verstehe ich dich richtig? Du trägst in deiner Datenquelle auf Rechner A in der OOo Base Datenbankdatei als Server localhost ein und wunderst dich, dass es Probleme auf Rechner B und C gibt? Wau, ich bin beeindruckt!

Richtig wäre es, wenn du für deinen Rechner A einen Namen vergibst, über den du den Rechner dann auch von Rechner B und Rechner C aus ansprechen kannst. Und dann trägst du diesen Namen statt localhost in deiner Datenquelle ein!

Alternativ kannst du natürlich auch einfach die IP-Adresse von Rechner A statt localhost in deiner Datenquelle eintragen. Aber sei gewarnt: Die Loopback-IP-Adresse 127.0.0.1 ist genau so ungeeignet wie localhost, auch wenn sie auf JEDEM Rechner mit konfigurierter Netzwerkkarte verfügbar ist!

hol.sten!
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Alle Monate wieder, wenn ich Zeit habe, will ich mich noch mal mit meinem Problem „OO-BASE – mehrbenutzerfähig“ beschäftigen.

Ich habe jetzt mal „localhost“ durch die IP-Adresse des Computers ersetzt, auf dem die batch-Datei läuft. Ich lasse die Datei nur auf dem Rechner laufen, auf dem sich die Datenbank befinden soll. Siehe da!: es funktioniert. Ich kann auf jedem Rechner im Netzwerk mit OO eine Verbindung zu dieser Datenbank aufbauen und von jedem Rechner aus (mehrbenutzterfähig!) Daten in dieser DB ändern.

Meine Frage: Oben genannte BATCH-Datei – was macht die genau? Wenn ich das richtig verstehe, startet sie einen HSQLDB-Server. Bedeutet das dann, dass der Rechner, auf dem die Datei läuft, als DB-Server fungiert? Stellt also die Batch-Datei quasi eine HSQL-Datenbank mit dem Namen mydb im Hintergrund bereit?

Wie und wo werden Daten abgespeichert? OO Base stellt ja nur eine Verbindung zu dieser „In-Kognito-Datenbank“ her, aber wo befindet sich diese Datenbank? Ist das Projekt datensicher?

Da fehlt mir wohl noch was Hintergrundwissen zu Datenbanken, oder? Mal 'ne Frage: Könnte ACCESS so was überhaupt?

Gruß Bernd!
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Base HSQL mehrbenutzerfähig

Beitrag von hol.sten »

NTClient hat geschrieben:Wenn ich das richtig verstehe, startet sie einen HSQLDB-Server. Bedeutet das dann, dass der Rechner, auf dem die Datei läuft, als DB-Server fungiert? Stellt also die Batch-Datei quasi eine HSQL-Datenbank mit dem Namen mydb im Hintergrund bereit?
Ja und ja.
NTClient hat geschrieben:Wie und wo werden Daten abgespeichert?
In den Dateien mydb.log, mydb.properties und mydb.script auf dem Rechner auf dem du die BATCH-Datei gestartet hast.
NTClient hat geschrieben:wo befindet sich diese Datenbank?
Auf dem Rechner auf dem du die BATCH-Datei gestartet hast.
NTClient hat geschrieben:Ich kann auf jedem Rechner im Netzwerk mit OO eine Verbindung zu dieser Datenbank aufbauen
In den ODB-Dateien auf jedem Rechner im Netzwerk werden nicht die erfassten und geänderten Daten gespeichert, sondern nur die Abfragen und Formulare.
NTClient hat geschrieben:Ist das Projekt datensicher?
Was meinst du damit?
NTClient hat geschrieben:Mal 'ne Frage: Könnte ACCESS so was überhaupt?
Ja
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

Zur Frage: „Ist das ganze datensicher?“

Soll bedeuten: Ist das was fürs Tagesgeschäft? Es soll eine Firmen-Datenbank (Rechnungen, Kunden, Aufträge usw.) für 20 Mitarbeiter werden, wobei ich nicht dauerhaft sicherstellen kann, dass alle die gleiche und neueste OO-Version haben und alle das gleiche JRE installiert haben. Nicht, dass ich damit laufend Probleme bekomme, weil irgendein Rechner den Zugriff nicht hinkriegt.

Und: Als Datensicherung reicht ja offensichtlich das tägliche Sichern der properties- und der script-Datei. An der odb-Datei wird sich ja nichts ändern, es sei denn, jemand würde sich eine neue Abfrage oder ein Formular entwerfen. Es könnte sich ja sogar jeder seine eigene odb-Datei lokal auf dem Rechner speichern!

Verstehe ich das richtig?: Die log-Datei speichert die Aktivitäten der aktuellen Sitzung. Nach Beenden wird der Eintrag in die script-Datei übertragen und die log-Datei ist wieder leer. Demnach ist die script-Datei eine reine Protokoll-Datei, die immer länger wird. Die Datenbank besteht dann einzig- und alleine aus einer ASCII-Text-Datei. Genial!

Noch was: Die Beziehungen zwischen den Tabellen habe ich per OO-BASE-odb-Datei erzeugt. Sind die dann auch nur in der odb-Datei vorhanden, ähnlich wie die Abfragen?

Gruß Bernd!
NTClient
****
Beiträge: 106
Registriert: Di, 19.07.2005 16:09

Re: Base HSQL mehrbenutzerfähig

Beitrag von NTClient »

UUUHHHHAAA!! !!!!!!!!!!!!!!!! Hilfe !!!!!!!!!!!!!!!! UUUHHHHAAA!!

Primery-Key als Autozähler funktioniert nicht! Auch wenn ich eine neue Tabelle über odb erzeuge und für die Spalte Integer, AutoWert=ja wähle wird die Tabelle dennoch mit AutoWert=nein abgespeichert.

Bei vorhandenen Tabellen sind die Feldeigenschaften sowieso grau hinterlegt und können nicht verändert werden.

Das macht meine Struktur zu nichte!!

Mist!
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Base HSQL mehrbenutzerfähig

Beitrag von hol.sten »

NTClient hat geschrieben:Zur Frage: „Ist das ganze datensicher?“ Soll bedeuten: Ist das was fürs Tagesgeschäft? Es soll eine Firmen-Datenbank (Rechnungen, Kunden, Aufträge usw.) für 20 Mitarbeiter werden, wobei ich nicht dauerhaft sicherstellen kann, dass alle die gleiche und neueste OO-Version haben und alle das gleiche JRE installiert haben. Nicht, dass ich damit laufend Probleme bekomme, weil irgendein Rechner den Zugriff nicht hinkriegt.
Ich würde OOo Base nicht für so eine Aufgabe einsetzen. Aber das ist meine persönliche Meinung die auf nicht allzuvielen Erfahrungen beruht.
NTClient hat geschrieben:Noch was: Die Beziehungen zwischen den Tabellen habe ich per OO-BASE-odb-Datei erzeugt. Sind die dann auch nur in der odb-Datei vorhanden, ähnlich wie die Abfragen?
Nein. Die Beziehungen sind dann in der Datenbank gespeichert. Wenn du das nicht glaubst, dann überzeuge dich davon mit einem Datenbank-Tool wie z. B. die Database Development Perspective in Eclipse oder dem Databases Dienst in NetBeans oder mit dem DBVisualizer.
Gesperrt