SQL Statement mit Benutzername und Passwort

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

Antworten
emeiler
Beiträge: 2
Registriert: So 15. Nov 2020, 21:19

Guten Tag,

in unserer Anwendung wird die Verbindung zum SQL Server über ein Statement ausgeführt. Benutzername und Passwort werden mit dem Connection String übergeben.

Leider klappt es nicht mit Firebird. Hier ist ein Beispiel:

jdbc:firebirdsql://192.168.1.246:3050/C:\Program Files\Firebird\Firebird_2_5\EMODAT.FDB,user=SYSDBA,password=masterkey

Bitte um Hilfe, ob das möglich ist und wie die Formatierung aussehen muss?
Vielen Dank für die Hilfe im Voraus.

Beste Grüße
emeiler
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Statt Komma nimm ein Semikolon als Trenner der Verbindungseigenschaften.
emeiler
Beiträge: 2
Registriert: So 15. Nov 2020, 21:19

Hallo,

danke für die Antwort. Das hat leider nicht geklappt.

Ich wollte etwas ausführen was ich durchführe:

Auf enem Windows Server ist eine Firebird 2.5 installiert.
Dort wurde eine Test-DB erstellt.

Wie im fb01.png dargestellt kann ich auf dem Windows Server mit dem C:\Program Files\Firebird\Firebird_2_5\bin>isql auf der Datenbank den query ausführen.

Auf einem Ubuntu ist unsere Anwendung installiert, mit der ich eine Verbindung und ein Query ausführen möchte. Der Treiber wurde unter https://firebirdsql.org/en/jdbc-driver/ heruntergeladen.

Diesen Treiber haben wir eingebunden: https://github.com/FirebirdSQL/jaybird/ ... DK_1.8.zip


Unter Tomcat\Logs erhalte ich aber folgende Fehlermeldung:

java.lang.ClassNotFoundException: org.firebirdsql.jdbc
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1928)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1771)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at eu.conatec.mobileforms.scheduler.LookupJob.load(LookupJob.java:196)
at eu.conatec.mobileforms.scheduler.LookupJob.refreshLookupData(LookupJob.java:138)
at eu.conatec.mobileforms.scheduler.LookupJob.execute(LookupJob.java:83)
at eu.conatec.mobileforms.scheduler.MFJob.execute(MFJob.java:46)
at eu.conatec.mobileforms.scheduler.impl.MFScheduler$1.run(MFScheduler.java:136)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)


Deshalb wollte ich über sqlite die Verbindung aubauen und testen.
Das habe ich unter Linux versucht und es hat auch nicht geklappt:

fb03.png

Unter dem Windows Server habe ich das auch verusucht und hat auch nicht geklappt.

fb02.png

Verwende ich den falschen Treiber?

Grüsse
Eduard
Dateianhänge
fb03.png
fb03.png (60.66 KiB) 20498 mal betrachtet
fb02.png
fb02.png (39.7 KiB) 20498 mal betrachtet
fb01.png
fb01.png (26.35 KiB) 20498 mal betrachtet
bfuerchau
Beiträge: 484
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Classnotfound-exception bedeutet, dass der Treiber im Classpath nicht aufgeführt ist.
Du musst ein Zip-Datei im Classpath, wie jedes andere Verzeichnis auch, ergänzen.
U.U. ist der Treiber noch zu registrieren:

https://www.baeldung.com/java-jdbc-loading-drivers

Für die Verbindungseigenschaften bleibts aber trotzdem beim Semikolon.
User und Kennwort kannst du aber auch in getConnection direkt angeben.

https://alvinalexander.com/java/jdbc-co ... sqlserver/
vr2
Beiträge: 213
Registriert: Fr 13. Apr 2018, 00:13

Hallo Eduard,

Kleinigkeiten: Du kannst das ganze etwas handlicher/sicherer gestalten, wenn Du den Pfad zur Datenbank als Alias in der aliases.conf einträgst:

Code: Alles auswählen

emodat=C:\Program Files\Firebird\Firebird_2_5\EMODAT.FDB
Dann kannst Du die DB in clients über den Alias emodat ansprechen. Würde außerdem die Datenbank nicht ins Binärverzeichnis des Datenbankservers packen, sondern woanders hin, Trennung von Code und Daten, damit Du beides separat ohne Probleme verwalten/verändern kannst.

Grüße, Volker
Antworten