Konfigurationsdatei ndat.dft

Zurück

Die Konfigurationsdatei ndat.dft enthält eine Reihe von Variablen, die die Steuerung der Datenbankverbindung und des Datenbankverhaltens beeinflussen. Im Rahmen der Datenbankverbindung besteht die Wahl zwischen ODBC und JDBC.
Die einzelnen Variablen und ihre Bedeutung werden nachfolgend aufgeführt.

Informationen zu den Besonderheiten bei der Anmeldung an der Datenbank über die Windows NT-Anmeldung befinden sich hier.

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:
  1. 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

  2. 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).

  3. 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*)


  4. 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

Weitere Informationen zu ndat.dft befinden sich hier.


Zurück