Wiki-Quellcode von Database drivers


Verstecke letzte Bearbeiter
gru 10.2 1 {{figure image="database_driver_de.png"}}
2 Dieser Fehlermeldung erscheint, wenn kein Treiber für die Datenbank installiert ist. Es muss zuerst der entsprechende Treiber für das Datenbankverwaltungssystem installiert werden.
sas 1.1 3 {{/figure}}
4
gru 10.2 5 Von {{formcycle case="dat"/}} werden keine Datenbanktreiber mehr mit ausgeliefert. Es ist hierdruch möglich, eigene Treiber zu nutzen, welche unabhängig von {{formcycle/}} aktualisiert werden können. Die Treiber müssen jedoch nun für das verwendete Datenbanksystem separat installiert werden. Die Treiber können von der offiziellen Seite des jeweiligen Datenbanksystems heruntergeladen werden:
sas 1.1 6
gru 10.2 7 * [[Oracle MySQL>>https://dev.mysql.com/downloads/connector/j/||rel="noopener noreferrer" target="_blank"]] (unter Select Opterating System ist Platform Independent auszuwählen)
sas 1.1 8 * [[OracleDB>>http://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html||rel="noopener noreferrer" target="_blank"]]
9 * [[PostgreSQL>>https://jdbc.postgresql.org/download.html||rel="noopener noreferrer" target="_blank"]]
10 * [[SQLServer>>https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server?view=sql-server-2017||rel="noopener noreferrer" target="_blank"]]
jdr 10.1 11 * [[MariaDB>>https://mariadb.com/kb/en/library/about-mariadb-connector-j||rel="noopener noreferrer" target="_blank"]]
sas 1.1 12
gru 10.2 13 Das genaue Vorgehen zur Installation hängt vom verwendeten Server ab. Für den Apache Tomcat wird [[hier>>doc:Formcycle.SystemSettings.TomcatSettings.InstallDBDriver]] die Einrichtung beispielhaft beschrieben.
sas 1.1 14
gru 10.2 15 == Encoding ==
sas 1.1 16
gru 10.2 17 In einer Datenbank lässt sich der zu nutzende Zeichensatz einstellen. Für {{formcycle/}} wird empfohlen, einen UTF-8-Zeichensatz zu wählen, der zwischen Groß- und Kleinschreibung unterscheidet, und zwar:
sas 1.1 18
19 {{code language="none"}}
20 utf8_bin
21 {{/code}}
22
gru 10.2 23 Bei Verwendung eines Zeichensatzen wie //utf8_general_ci// (utf8, case insensitive) kann es zu Problemen kommen, da hier nicht zwischen Groß- und Kleinschreibung unterschieden wird.
sas 1.1 24
gru 10.2 25 == Hinweise zu MS SQL und Encoding ==
sas 1.1 26
gru 10.2 27 Für die MS SQL Server-Version 2019 oder höher sollte das Encoding {{code language="none"}}Latin1_General_100_CI_AS_SC_UTF8{{/code}} genutzt werden. In älteren MS SQL Server-Versionen sollte stattdessen {{code language="none"}}Latin1_General_CI_AS{{/code}} als Encoding verwendet werden.
sas 1.1 28
gru 10.2 29 == Hinweise zu Oracle MySQL ==
sas 1.1 30
gru 10.2 31 {{figure image="database_mysql_unicode_de.png"}}
32 Konfiguration des Datenbanksystems //Oracle MySQL// mit Unicode. Hier wird die Zeichenkodierung explizit in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} mitgegeben. Im Normalfall ist dies nicht notwendig, die Zeichenkodierung wird automatisch erkannt.
sas 1.1 33 {{/figure}}
34
gru 10.2 35 Ab Version 8 von Oracle MySQL wird der Zeitzonenname {{smallcaps}}Cest{{/smallcaps}} nicht mehr unterstützt. Standardmäßig übermittelt das Betriebssystem die Zeitzone an die Datenbank. Wird hier dieser Zeitzonenname an Oracle MySQL übertragen, kann keine Verbindung zur Datenbank hergestellt werden. In dem Fall ist es möglich, eine Zeitzone explizit in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} zu übergeben:
sas 1.1 36
37 {{code language="text"}}
gru 10.2 38 jdbc:mysql://localhost/db?serverTimezone=Europe/Berlin
sas 1.1 39 {{/code}}
40
gru 10.2 41 Weiterhin kann es in einigen Fällen vorkommen, dass die Zeichenkodierung nicht richtig erkannt wird. Auch hier kann die Zeichenkodierung in der {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} übergeben werden. Für Unicode zum Beispiel, wenn in der Datenbank die Einstellung //connection collation// auf //utf8_general_ci// gesetzt ist:
sas 1.1 42
43 {{code language="text"}}
44 jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=UTF-8
45 {{/code}}
46
gru 10.2 47 == Andere Datenbanksysteme ==
sas 1.1 48
gru 10.2 49 Es ist auch möglich, eine anderes Datenbanksytem wie etwa HSQLDB, Derby oder Informix zu verwenden. Auch hier muss der Datenbanktreiber installiert werden. Hier eine Übersicht über die {{smallcaps}}Jdbc{{/smallcaps}}-{{smallcaps}}Url{{/smallcaps}} und die dazugehörigen Treiberklassen einiger Datenbanksysteme:
sas 1.1 50
51 {{table dataTypeAlpha="0-2" preSort="0-asc"}}
gru 10.2 52 |=Name|=JDBC-URL|=JDBC-Treiber Klasse
53 | SAP HANA| jdbc:sap:~/~/<dbhost>:30015/|com.sap.db.jdbc.Driver
sas 1.1 54 | Informix| jdbc:informix-sqli:~/~/<dbhost>:9088/sysuser:INFORMIXSERVER=hpjp|com.informix.jdbc.IfxDriver
55 | HSQLDB| jdbc:hsqldb:mem:<dbname>| org.hsqldb.jdbc.JDBCDriver
56 | Derby| jdbc:derby:target/tmp/derby/hpjp;databaseName=<dbname>;create=true| org.apache.derby.jdbc.EmbeddedDriver
57 {{/table}}