Variable |
Bedeutung |
ndat-type |
Auswahl zwischen ODBC und JDBC als Datenbank-Schnittstelle.
ODBC:
ndat-type=jni
JDBC:
ndat-type=ndatjdbc
Für jede ndat-Schicht kann eine ndat-type-Belegung
ausgewählt werden, d. h. in der ndat.dft können beide Möglichkeiten vertreten sein.
|
DATABASE |
DATABASE und ODBC
DATABASE ist der Standardparameter für den Namen der ODBC-Datenquelle.
ndat-type=jni
DATABASE=IFAS
(*siehe DSN-Konfiguration über Windows => ODBC-Datenquellen-Administrator*)
DATABASE und JDBC
Im Falle der Nutzung von ODBC wird nur der Parameter
DATABASE verwendet. Bei JDBC hingegen
sind die Parameter DATABASE_DRIVER und
DATABASE_CONNECT nötig.
Je nach Art der Datenbank gibt es für JDBC verschiedene Treiber und verschiedene Wege, um eine Datenbankverbindung aufzubauen:
- SQL (Microsoft-Treiber):
DATABASE_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
DATABASE_CONNECT=jdbc:sqlserver://10.4.20.31;database=IFAS;integratedSecurity=true
(*Zu beachten ist bei Microsoft SQL Server die Instance. Der Name kann je nach Installation variieren (meist SQLEXPRESS)*)
Allgemeine Syntax:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Klicken, um zu einer Erläuterung zu gelangen
Die Konfigurationen für die Verbindung mit einem SQL-Server sind durchaus variabel. Es existiert eine Fülle an
optionalen Parametern, wie integratedSecurity=true im obigen Beispiel. Ob diese weiteren Parameter
verwendet werden, bleibt dem zuständigen Systemadministrator überlassen. Eine Übersicht liefert das
Microsoft Developer Network (MSDN).
- Access:
DATABASE_DRIVER=sun.jdbc.odbc.JdbcOdbcDriver
(*Notwendige Angaben zum verwendeten Treiber*)
DATABASE_CONNECT=jdbc:odbc:;DRIVER=Microsoft Access Driver
(*Notwendiger Connect-String*)
(*.mdb);DBQ=d:\Database\ifas.mdb
(*Name der verwendeten Datenbank*)
- Oracle:
DATABASE_DRIVER=oracle.jdbc.driver.OracleDriver
DATABASE_CONNECT=jdbc:oracle:thin:@orarepl01.duisburg.kisters.de:1521:IFAS01
(*jdbc:oracle:thin:[user/password]@host[:port][:SID]*)
Tipp:
Bei wechselndem Betrieb kann sowohl der ODBC- als auch die JDBC-DATABASE-Parameter in der ndat.dft belegt werden.
Über ndat-type kann dann flexibel zwischen ODBC und JDBC gewechselt werden.
Alternativ kann durch die Angabe FileDSN erreicht werden, dass die Einrichtung eines ODBC-Treibers entfällt; das gesamte IFAS-Paket kann allein durch einfaches
Kopieren des Verzeichnisses C:\ifas eingerichtet werden:
1) SQL-Server-Beispiel:
DATABASE=FileDSN=C:\ifas\bin\IFAS.dsn
Inhalt der Datei IFAS.dsn: (Bsp. für SQL-Server)
|
[ODBC] |
DRIVER=SQL Server |
*Treiber* |
DATABASE=IFAS |
*Datenbank* |
SERVER=nixdui04 |
*Server* |
|
[JDBC] |
DATABASE_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver |
*Notwendige Angaben zum verwendeten Treiber* |
DATABASE_CONNECT=jdbc:sqlserver://nixdui04;database=IFAS |
*Art der Schnittstelle:Datenquelle:Bezeichnung des Servers:Name der
Datenbank* |
ndat-type=NdatJDBC |
*Angabe des entsprechenden Ndat-Types, welcher innerhalb der IFAS-Module
zunehmend verwendet wird* |
2) Oracle-Beispiel:
ndat-type=ndatjdbc
DATABASE=FileDSN=C:\ifas\bin\IFAS-Oracle1.dsn;
DATABASE_DRIVER=oracle.jdbc.driver.OracleDriver
DATABASE_CONNECT=jdbc:oracle:thin@orarepl01.duisburg.kisters.de:1521:IFAS01
Inhalt der Datei IFAS-Oracle1.dsn: (Bsp.
für Oracle) |
[ODBC] |
DRIVER=Oracle in ORA9201Server |
*Angabe des benötigten Treibers* |
DBQ=ifas |
*Name der Datenbank* |
SERVER=ifas |
*Bezeichnung des Servers* |
|
UID |
Benutzerkennung zur Anmeldung an die Datenquelle. Der Parameter kann hier ganz
entfallen, dann wird der in der ODBC-Datenquelle eingetragene Benutzer ausgewählt. |
PWD |
Passwort (unverschlüsselt oder verschlüsselt), falls ein Kennwort
benötigt wird. Der Parameter kann hier ganz entfallen, dann wird das in der ODBC-Datenquelle eingetragene
Kennwort benutzt. |
pwd_crypt |
Default:0 (unverschlüsselt). Durch den Wert pwd_crypt = 1 wird
festgelegt, dass ein verschlüsseltes Passwort (Parameter PWD) eingetragen ist. Mit dem Hilfsprogramm
bwcrypt.exe kann das Passwort entsprechend den NDAT-Konventionen verschlüsselt werden. |
lock_table_stmt |
Default: lock Table %s in exclusive mode. SQL-Anweisung zum Sperren einer
Tabelle. Sind in einer Datenbank keine Sperren zulässig, so kann der Parameter auf den Wert NULL gesetzt
werden. |
dbtrace |
Name einer zu erstellenden Protokolldatei mit relativem oder absolutem Pfad.
Der Wert 'APPLNAME' veranlasst NDAT zum Anlegen einer Datei mit dem Namen (die ersten 8 Zeichen der
Überschrift) der Applikation; damit wird verhindert, dass ein Programm die gerade von einem anderen
Programm angelegte Ndat-Debug-Datei überschreibt. |
dbtime |
Protokollierung der benötigten Zeiten für jedes Datenbankkommando in
Verbindung mit dem Parameter dbtrace (s. o.). Der Wert 1 misst alle Datenbankzugriffzeiten, der Wert 2
zusätzlich die absoluten Zeiten (dadurch sind Rückschlüsse auf Benutzeraktionen oder
Programmlaufzeiten zwischen je zwei Datenbankaktionen möglich. |
count_distinct |
Standardmäßig wird bei dem NDAT-Kommando count distinct das SQL-Kommando 'Select count(distinct <spaltenname>)'
generiert. Der Wert 0 veranlasst NDAT das Schlüsselwort DISTINCT wegzulassen (MS-Access). |
nullable |
Standardmäßig können NULL-Werte beim Insert eingetragen werden.
Der Wert 0 veranlasst NDAT bei NULL-Werten eine 0 bzw. einen Leerstring einzutragen. |
replace_wildcards |
Standardmäßig werden keine Ersetzungen von Platzhaltern (wildcards) vorgenommen. Der Wert 1 bewirkt eine Ersetzung von
'*' in '%' und von '?' in '_'. |
stripblanks |
Standardmäßig werden Blanks am Ende abgeschnitten. Der Wert 0
verhindert das Abschneiden von Blanks am Ende. |
timeout |
Das Programm arbeitet standardmäßig ohne Timeoutzeiten beim
Select-Kommando. Ein Wert > 0 bewirkt den Abbruch von Kommandos, die länger als timeout Sekunden benötigen. |
transaction |
Standardmäßig wird bei einem Transaktionsstart nur beim ersten Mal die Funktion SQLSetConnectOption
(SQL_AUTOCOMMIT_OFF) aufgerufen. Durch den Wert 1 wird diese Funktion bei jedem Transaktionsstart aufgerufen, der Wert 2 bewirkt, dass
zusätzlich bei einem Transaktionsende die Funktion SQLSetConnectOption(SQL_AUTOCOMMIT_ON) aufgerufen wird. |
convert |
Durch den Wert convert = 1 werden alle Buchstaben des übergebenen Kommandos in Großbuchstaben gewandelt,
convert = 2 wandelt entsprechend in Kleinbuchstaben. (Die Dateninhalte bleiben unverändert.) |
trace_file |
Durch den Wert trace_file = 1 wird die Debug Protokolldatei für das Schreiben einer jeden Zeile geöffnet und geschlossen.
Bei einem Programm-Abbruch ist dadurch eine vollständig abgeschlossene Datei gewährleistet (Bit 0 gesetzt).
Durch den Wert trace_file = 2 werden nur die Fehler protokolliert (Bit 1 gesetzt).
Der Wert trace_file = 3 ist eine Kombination aus den trace_file-Werten 1 und 2.
Bei den trace_file-Werten 4 - 7 werden die Zeilen nicht getrennt (Bit 2 gesetzt). |
db_malloc |
Interne Überprüfung der Speicherallokierung inklusive der Ausgabe
einer Statistik am Ende der Trace-Datei. db_malloc=0 schaltet diese Überprüfung aus. |
multi_connect |
multi_connect=2 für Datenverbindungen mit dem Microsoft SQL-Server notwendig. Geschachtelte Select-Anweisungen werden automatisch
in verschiedene ODBC-Verbindungen verteilt. |
spclchars |
Default = '. Spezielle Zeichen, die in den Datenbereichen von Insert oder
Update Kommando verdoppelt werden. |
db_set<n> |
Der Inhalt der Variablen db_set0, ..., db_set<n> wird bei jedem Aufbau
einer Datenbankverbindung als Datenbank-Kommando direkt an die Datenbank geschickt. |
shared_memory<n> |
Bei eingeschalteter Ndat-Debugdatei wird jede Zeile der Debug-Datei zusätzlich in einen Speicherbereich geschrieben,
der von anderen Programmen, wie z. B. dem Programm dbtrace.exe ausgelesen werden kann. shared_memory=0 schaltet diese Funktion aus, dadurch wird das Schreiben der Debug-Datei
geringfügig schneller. |
SQL_*<n> |
Datentypenmapping von gültigen ODBC-Datentypen in NDAT-Datentypen.
Gültige ODBC-Datentypen:
SQL_CHAR
SQL_DATE
SQL_TIMESTAMP
SQL_VARCHAR
SQL_BIT
SQL_LONGVARCHAR
SQL_DECIMAL
SQL_NUMERIC
SQL_INTEGER
SQL_SMALLINT
SQL_TINYINT
SQL_FLOAT
SQL_BIGINT
SQL_DOUBLE
SQL_REAL
Gültige NDAT-Datentypen:
DB_STRING
DB_LONG
DB_SHORT
DB_DOUBLE
DB_FLOAT
Beispiel:
SQL_DATE=DB_STRING
SQL_DOUBLE=DB_FLOAT
|