org.gjt.mm.mysql.Driver konnte nicht geladen werden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

chebrise
**
Beiträge: 20
Registriert: So, 03.06.2007 21:35
Wohnort: Tor zum Sauerland
Kontaktdaten:

org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von chebrise »

hallo Forum,

ich teste ein Beispiel aus einem OOo Basic Buch:

Code: Alles auswählen

function getConnection_JDBC
	dim mDBProperties(2) as New com.sun.star.beans.PropertyValue
	mDBProperties(0).name = "user"
	mDBProperties(0).value = "root"
	mDBProperties(1).name = "password"
	mDBProperties(1).value = "sqlkomuni"
	mDBProperties(2).name = "JavaDriverClass"
	mDBProperties(2).value = "org.gjt.mm.mysql.Driver"
REM	mDBProperties(2).value = "com.mysql.jdbc.Driver"
	
	oDriverManager = createUnoService("com.sun.star.sdbc.DriverManager")
	oConnection = oDriverManager.getConnectionWithInfo( _
		"jdbc:mysql://127.0.0.1:3306/wettertest", mDBProperties())
	getConnection_JDBC = oConnection
End function

So steht es in diesem Buch. Leider ist es das Einzige was zu externen Datenbanken in diesem Buch steht.

Wie muß ich (wenn ich dann muß) OOo den Datenbanktreiber bekannt machen?
Und wenn ich das Script woanders ausführen möchte, wie kann ich einen Treiber verwenden der auf dem Zielsystem vorhanden ist?

Ich bin um jeden Tip und Rat dankbar
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von komma4 »

chebrise hat geschrieben:Wie muß ich (wenn ich dann muß) OOo den Datenbanktreiber bekannt machen?
Und wenn ich das Script woanders ausführen möchte, wie kann ich einen Treiber verwenden der auf dem Zielsystem vorhanden ist?
Habe mit dem Code keine Probleme, mich mit meiner MySQL-DB zu verbinden.

Als Treiber habe ich den com.mysql.jdbc.Driver genommen.
Der wurde dem OOo System unter Extras>Optionen...>OpenOffice.org>Java im Class-Path bekannt gemacht (mysql-connector-java-5.1.15-bin.jar)

Ist bei einem anderen Rechner der gleiche Treiber installiert - dann klappt das mit gleichem Code auch dort.


Hilft Dir das weeiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
chebrise
**
Beiträge: 20
Registriert: So, 03.06.2007 21:35
Wohnort: Tor zum Sauerland
Kontaktdaten:

Re: org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von chebrise »

dank dir. Ja das hilft mir weiter... es funktioniert.

Wenn ich nun ein Dokument mit diesem Makro ausliefern möchte, muß der Kunde auch den jdbc Treiber haben und wie du beschrieben hast, in den Classpath setzen. Oder kann das Office Dokument die Informationen zum Classpath mitbringen?

Ich habe, was ich wollte, schon fast fertig. Allerdings über die Java API von OpenOffice und einer kompletten Java-App. Da liefere ich den jdbc Treiber eh mit aus. Wenn es auch "nur" mit OpenOffice funktionieren würde, wäre das gut... also dem Kunden mit einem einzigen Office Dokument alles mitgeben. Ist das möglich?

Die Office Dokumente sind Archive... da könnte man zumindest theoretisch die jdbc.jar rein packen.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von komma4 »

[
chebrise hat geschrieben:muß der Kunde auch den jdbc Treiber haben und wie du beschrieben hast, in den Classpath setzen. Oder kann das Office Dokument die Informationen zum Classpath mitbringen?
Die Information, die ich gab, war nicht vollständig:

OOo braucht über den beschriebenen Weg Class-Path das Hinzufügen des Archivs!

Das kann wahrscheinlich auch eine Manipulation an der Konfigurationsdatei [OOo-Benutzerverzeichnis]/config/javasettings_Linux_X86_64.xml [bei meiner Linux-Installation!] erfolgen --- dafür habe ich aber keinen Code.
Ich empfehle Dir, dass in die Installationsanweisungen Deiner Anwendung mit aufzunehmen und den Code um eine Fehlerroutine (falls das Archiv fehlt) zu erweitern.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von Stephan »

Ist das möglich?
Prinzipiell ja, das Verfahren ist im Buch in meiner Signatur beschrieben. Gehe auf http://www.galileocomputing.de/1941?GPP=ooocalc und suche mit der Suchfunktion im unteren Bereich der SEite nach den folgenden fettgeschriebenen Begriffen und lies die vermerkten SEiten durch

ODF-Dateiformat findet S. 444
Packprogramm findet S. 445
hilfe_aufrufen findet S. 446
meintyp findet S. 447
ermittle_pfad findet S. 448 und 449
Temp-Verzeichnis S. 450

beachte die genaue Schreibung der Suchbegriffe die hier nur dazu dienen die richtigen Seiten zu finden da ich keinen WEg kenne diese direkt, statisch zu verlinken.

Die genannten SEiten erklären natürlich nur wie Du entsprechende ZUsatzdateien in die OOo-Datei einpacken kannst, um weitere Funktionalität (also die Installation etc.) mußt Du Dich dann zusätzlich mit einem Makro kümmern was du auch in der OOo-Datei speichern kannst.



Gruß
Stephan
chebrise
**
Beiträge: 20
Registriert: So, 03.06.2007 21:35
Wohnort: Tor zum Sauerland
Kontaktdaten:

Re: org.gjt.mm.mysql.Driver konnte nicht geladen werden

Beitrag von chebrise »

ok, danke euch. Mal sehen ob es das Buch in der Uni gibt. In meinem Macro-Buch (selber Verlag) steht auch wie ich mit Dateien umgehen kann.

Weil aber die Sache mit dem Classpath ansteht werde ich es wohl mit Java machen. Ich möchte nicht für jedes Betriebssystem die Konfigurationsdateien beachten... wenn es wirklich dem "Haupt"-Office gesagt werden muß.
Über die Java API sehe ich keine Möglichkeiten das "Haupt"-Office zu konfigurieren.

In meinem Buch gibt es noch ein ZusatzKapitel über -Eigenständige Applikationen-. Vielleicht ist das eine Lösung.
Antworten