infra:NET User
 
×
1.2.71 DbsConnect - Verbinden zur Datenbank
DbsConnect( strDataSource, strLoginName, strPasswort, nDbsReturnCode );
AskDBCredentials(strLoginName, strDateBaseDescriptions );
DbsConnectWithDBCredentials( nDbsReturnCode );
DbsDisconnect( nDbsReturnCode );
DbsReconnect( nDbsReturnCode );
DbsIsConnected( nIsConnected )
Argumente
strDataSource
Datenbank, zur der die Anmeldung erfolgen soll, z.B. SPIEL, ECHT
 
strDateBaseDescriptions
Beschreibungen der Datenbank, z.B. Testdaten, die dem Benutzer zur Auswahl vorgelegt werden. Diese Variable wird durch die Funktion DbsInitAccess vorbelegt.
 
strLoginName
infra-Datenbankbenutzer
 
strPasswort
Kennwort des Datenbankbenutzers
 
nIsConnected
0
Keine Verbindung zur Datenbank hergestellt.
1
Verbindung zur Datenbank hergestellt.
 
NDbsReturnCode
Rückgabewert
Rückgabewerte
0
kein Fehler
sonst
Kernsystemfehler
Beschreibung
Mit Aufruf der Funktion DbsConnect wird eine Verbindung mit der Datenbank, mit den Parametern strDataSource, z.B. SPIEL, strLoginName, z.B. sib, und strPasswort, z.B. „“ hergestellt. Ist der DbsReturnCode == 0, wurde die Verbindung erfolgreich erstellt. Ist DbsReturnCode <> 0, ist dies ein Kernsystemfehler, beschrieben in der Anwenderhilfe zu infra.
Mit Hilfe von AskDBCredentials kann der Benutzer den Benutzernamen, das Kennwort und die Datenbank, die er bearbeiten will, eingeben bzw. auswählen. In strLoginName kann der Benutzer vorbelegt werden.
Die Variable strDateBaseDescriptions wird von DbsInitAccess vorbelegt. Sie hat die Form {Beschreibung_0|beschreibung_1|..|BeschreibungN}.
Als Defaultwert wird im Benutzerdialog Beschreibung_0 gesetzt.
Der Defaultwert kann verändert werden, indem die Reihenfolge in der SIBDB.INI verändert wird.
Das Passwort kann nicht mit Hilfe von Skriptbefehlen gesnoopt werden.
Die Auswertung der Benutzereingabe erfolgt mit Aufruf der Funktion DbsConnectWithDBCredentials.
Die Datenbank wird Anhand der ausgewählten Beschreibung, die der Benutzer auswählt hat, gesucht.
WICHTIG: Wird in der SIBDB.INI die Bezeichnung selber geändert, findet DbsConnectWithDBCredentials die Datenbank nicht mehr, da die Strings verglichen werden.
Die Reihenfolge der Bezeichnungen in SIBDB.INI hat keinen Einfluss.
Die Datenbank kann mit DbsReconnect, nach einem Ändern des Data-Dictionary neu initialisiert werden.
Damit zu einer anderen Datenbank eine Verbindung mit DbsConnect erstellt werden kann, muss zuerst die Verbindung mit der aktuellen Datenbank mit Hilfe der Funktion DbsDisconnect geschlossen werden.
Mit DbsIsConnected kann geprüft werden, ob eine Verbindung zur Datenbank bereits hergestellt ist. In diesem Fall wird 1 zurückgegeben. Ansonsten 0.
Hinweis: Soll im Skriptteil eine andere Datenbank ausgewählt werden, erfolgt dies immer wie folgt:
Mit Benutzereingaben
DbsDisconnect( nDbsReturnCode );
DbsInitAccess( strsibpps_ini_path, "STATION", strDateBaseDescriptions, lDbsRc );
AskDBCredentials( "sib", strDateBaseDescriptions );
DbsConnectWithDBCredentials( lDbsRc );
Direkte Verbindung
DbsDisconnect( nDbsReturnCode );
DbsInitAccess( strsibpps_ini_path, "STATION", strDateBaseDescriptions, lDbsRc );
DbsConnect( "SPIEL", "sib", "", lDbsRc );
Auf das Behandeln der Fehlercode sei hier verzichtet.
Funktionsart
STPFunktion
Beispielskript für infra-Datenbank Zugriff
#UseDllExtension=IPSDB.dll
String( strsibpps_ini_path, strsibpps_ini, strLogFile, strDateBaseDescriptions  ); 
Long( lDbsRc );
AssignString( strsibpps_ini_path, str$TARGETDIR );
AppendToPath( strsibpps_ini_path, "GRAFIK\INI" );
// Initialisierung der infrafehlertexte:
InitinfraSysMsg(strsibpps_ini_path,"SIBPPS.MSG",n$SM_FORMAT_ISO, str$SM_LANG_GER,lDbsRc );
If     ( lDbsRc == 1 )
       {
       MessageBox( "SIBPPS.MSG konnte nicht
       initialisiert werden", n$SEVERE );
       Exit();
       }
Deklaration des Datenbankzugriffes:
//Init DB Access und Connect DB
DbsInitAccess( strsibpps_ini_path, "STATION", strDateBaseDescriptions, lDbsRc );
If     ( lDbsRc != 0 )
       {
       MessageBoxError( "\nVorbereitung Datenbank",
       0, n$SEVERE );
       Exit();
       }
DbsIsConnected( lDbsRc );
If     ( lDbsRc == 0 )
       {
       AskDBCredentials( "sib",
       strDateBaseDescriptions );
       //DbsConnect( "SPIEL", "sib", "", lDbsRc );
       DbsConnectWithDBCredentials( lDbsRc );
       If     ( lDbsRc == 2095 )
               {
               MessageBox( "Falsches Passwort", n$WARNING );
               Exit();       
               }// if( lDbsRc == 2095 )
       if     ( lDbsRc != 0 )
               {             
               MessageBoxError( "\nVerbindung zur Datenbank", 0, n$SEVERE );
               Exit();
               }
       }//DbsIsConnected( lDbsRc )