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
| ||||
|
|
NDbsReturnCode
Rückgabewert
| ||||
|
Rückgabewerte
|
| ||||
|
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 )
|
