Zum Hauptinhalt springen

DbaConnect

DbaConnect(int1, alpha2, alpha3, alpha4, alpha5, alpha6, alpha7) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Verbindung zu einer anderen CONZEPT 16-Datenbank herstellen

Details

  • int1: Dateinummernbereich
  • alpha2: Namenspräfix
  • alpha3: Serveradresse
  • alpha4: Datenbankname
  • alpha5: Benutzername
  • alpha6: Benutzerkennwort
  • alpha7: Serverkennwort
  • Resultat: int _ErrOk Verbindung erfolgreich hergestellt Fehlerwert (siehe Text) Anweisung setzt den globalen Fehlerwert
  • Siehe: Verwandte Befehle , DbaDisconnect () , Verwendung (Blog)

Mit dieser Funktion lassen sich bis zu sieben weitere CONZEPT 16-Datenbanken öffnen. Dabei wird die Datenstruktur einer solchen 'sekundären' Datenbank in einen gesonderten Dateinummernbereich geladen. Dabei stehen sieben Bereiche zur Auswahl (2001-2999, 3001-3999, ... und 8001-8999) die durch Angabe von _Dba2 bis _Dba8 in (int1) ausgewählt werden. Das bedeutet, dass beispielsweise die Datei 122 beim Laden in den Bereich 3 dann die Dateinummer 3122 erhält.

Um einen konfliktfreien Zugriff per Namen auf die Datenstrukturen zu ermöglichen, kann in (alpha2) ein Präfix angegeben werden, das allen Elementnamen aus dieser Datenstruktur vorangestellt wird. Das Präfix sollte so gewählt werden, dass keine Überschneidung mit Namen aus der primären Datenstruktur auftritt.

In (alpha3) wird die IP-Adresse oder der Name des Zielserver angegeben. Als Protokoll wird 'TCP' verwendet.

Bei der Verwendung der Hot-Standby -Option des Servers kann der Hostname oder die IP-Adresse der "normalen" Verbindung angegeben werden. In (alpha3) werden beide Server (der Primär- und der Sekundärserver) angegeben. Die beiden Server werden durch '+' voneinander getrennt (<Protokoll>:<Servername>+<Servername>).

Es folgt der Datenbankname in (alpha4) (inklusive Pfadname) bzw. der symbolische Datenbankname.

In den Parametern (alpha5) und (alpha6) werden der Benutzer und sein Kennwort in der verbundenen Datenbank angegeben. Für einen Zugriff via DbaConnect() muss die Option "Externer Zugriff" in den Programmrechten des Benutzers der zu verbindenden Datenbank gesetzt sein. Existiert der Benutzer in der zu verbindenden Datenbank nicht oder hat er nicht die erforderlichen Rechte, wird _ErrDbaUserInvalid zurückgegeben.

Bei kennwortgeschützten Datenbanken kann in (alpha7) das entsprechende Serverkennwort übergeben werden.

Als Resultat wird ein Fehlerwert zurückgeliefert.

info

In einer mit DbaConnect () verbundenen Datenbank können nicht alle CONZEPT 16-Befehle verwendet werden. Folgende Befehle stehen zur Verfügung:

Informationen über die verbundene Datenbank können über die Anweisung DbaInfo () durch Angabe der Konstanten _Dba2 bis _Dba8 ermittelt werden.

Texte in der externen Datenbank können über die Konstanten _TextDba2 bis _TextDba8 angesprochen werden.

Beispiele:

// Verbindung ohne HSB
if (DbaConnect(_Dba3, 'BackUp-', 'TCP:Kronos', 'Kunden', 'SU', '', '') = _ErrOk)
{
FldDef(3008, 1, 2, 0);
FldDefByName('BackUp-Kd.Name', 'test');
RecRead(3008, 1, 0);
... # FldInt(3008, 1, 5);
... # FldAlphaByName('BackUp-Kd.Ort');
DbaDisconnect(_Dba3);
}

// Verbindung mit HSB
if (DbaConnect(_Dba2, '', 'TCP:10.0.0.1+10.0.0.2', 'Kunden', 'SU', '', '') = _ErrOk)
{
// ...
DbaDisconnect(_Dba2);
}

Beim Versuch einen bereits belegten Dateinummernbereich zu verwenden oder bei einem ungültigen Wert in (int1) kommt es zu einem Laufzeitfehler.

info

Kommt es zu einem Verbindungsabbruch zu einer verbundenen Datenbank, führen die Datensatzbefehle im SOA-Service zum Resultat _ErrDbaComm . Beim Standard- und Advanced-Client wird der Client jedoch mit der Meldung "Bereich: Kommunikation / Fehler: Verbindung abgebrochen" beendet. Wird in der Eigenschaft Options des _Sys -Objektes die Option _DbaConnectOpErrorCode gesetzt, wird auch im Standard- und Advanced-Client der Fehlercode _ErrDbaComm zurückgegeben und der Client bleibt bestehen.

Mögliche Laufzeitfehler: