Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

CONNECT-Anweisung [ESQL] [Interactive SQL]

Mit dieser Anweisung bauen Sie eine Verbindung zur Datenbank auf.

Syntax 1
CONNECT
[ TO Servername ]
[ DATABASE Datenbankname ]
[ AS Verbindungsname ]
[ USER ] Benutzer_ID [ IDENTIFIED BY Kennwort ]
Servername, Datenbankname, Verbindungsname, Benutzer_ID, Kennwort :
{ Bezeichner | Zeichenfolge | Hostvariable }
Syntax 2
CONNECT USING Verbindungszeichenfolge
Verbindungszeichenfolge : { Bezeichner | Zeichenfolge | Hostvariable }
Parameter
  • AS-Klausel   Eine Verbindung kann wahlweise auch durch die Angabe einer AS-Klausel benannt werden. Dadurch können Sie mehrere Verbindungen zu einer Datenbank bzw. zu einem oder verschiedenen Datenbankservern gleichzeitig herstellen. Jede Verbindung besitzt ihre eigene zugeordnete Transaktion. Es können sogar Sperrenkonflikte zwischen Ihren Transaktionen auftreten, wenn Sie beispielsweise versuchen, denselben Datensatz in einer Datenbank von zwei verschiedenen Verbindungen aus zu ändern.

Syntax 2   Eine Verbindungszeichenfolge ist eine Liste von Parametereinstellungen in Form von Schlüsselwort=Wert, wobei die Werte durch Semikola getrennt sind. Sie müssen außerdem in Apostrophe eingeschlossen werden.

Weitere Hinweise zu Verbindungszeichenfolgen finden Sie unter Verbindungsparameter.

Bemerkungen

Die CONNECT-Anweisung stellt eine Verbindung zur Datenbank her, die durch Datenbankname gekennzeichnet wird und auf dem mit Datenbankservername bezeichneten Datenbankserver läuft. Diese Anweisung wird in Prozeduren, Triggern, Ereignissen oder Batches nicht unterstützt.

Verhalten in Embedded SQL   Wenn der Datenbankservername nicht angegeben ist, wird in Embedded SQL der vorgegebene lokale Datenbankserver angenommen (der erste Datenbankserver, der gestartet wird). Wenn kein Datenbankname angegeben ist, wird die erste Datenbank auf dem vorgegebenen Server angenommen.

Die Anweisungen WHENEVER, SET SQLCA und einige DECLARE-Anweisungen erzeugen keinen Code und können daher in der Quelldatei vor der CONNECT-Anweisung erscheinen. Andernfalls werden keine anderen Anweisungen zugelassen, bis eine CONNECT-Anweisung ausgeführt wurde.

Die Benutzer-ID und das Kennwort werden zur Überprüfung der Berechtigungen für alle Dynamic SQL-Anweisungen verwendet.

Eine detaillierte Beschreibung des Verbindungsalgorithmus finden Sie unter Verbindungsfehlerbehandlung.

Hinweis

Bei SQL Anywhere ist nur Syntax 1 mit Embedded SQL gültig. Bei UltraLite können Syntax 1 und Syntax 2 mit Embedded SQL verwendet werden.

Verhalten in Interactive SQL   Wenn in der CONNECT-Anweisung weder Datenbank noch Server angegeben sind, hält Interactive SQL die Verbindung zur aktuellen Datenbank aufrecht und gibt weder Server noch Datenbank vor. Wenn der Name einer Datenbank ohne den Namen des Servers angegeben wird, versucht Interactive SQL, auf dem aktuellen Server eine Verbindung zur angegebenen Datenbank aufzubauen. Wenn der Name eines Servers ohne den Namen einer Datenbank angegeben wird, versucht Interactive SQL auf dem angegebenen Server eine Verbindung zur Standarddatenbank herzustellen.

Wenn z.B. der unten gezeigte Batch bei einer Datenbankverbindung ausgeführt wird, werden die beiden Tabellen in derselben Datenbank erstellt.

CREATE TABLE t1( c1 int );
CONNECT DBA IDENTIFIED BY sql;
CREATE TABLE t2 (c1 int );

Es werden keine anderen Datenbankanweisungen zugelassen, bis die CONNECT-Anweisung ausgeführt wurde.

Wenn Interactive SQL im Befehlsfenster-Modus ausgeführt wird, werden Sie zur Eingabe ggf. fehlender Verbindungsparameter aufgefordert.

Wenn Sie Interactive SQL im Befehlszeilenmodus (-nogui ist angegeben, wenn Sie Interactive SQL von einer Eingabeaufforderung aus starten) oder im Batchmodus ausführen, oder wenn Sie CONNECT ohne AS-Klausel ausführen, wird eine unbenannte Verbindung geöffnet. Wenn bereits eine unbenannte Verbindung geöffnet wurde, wird die alte automatisch geschlossen. Andernfalls werden vorhandene Verbindungen nicht geschlossen, wenn Sie CONNECT ausführen.

Mehrere Verbindungen können über das Konzept der aktuellen Verbindung verwaltet werden. Nach einer erfolgreichen Verbindungsanweisung wird aus der neuen Verbindung die aktuelle. Mit der SET CONNECTION-Anweisung können Sie zu einer anderen Verbindung wechseln. Die DISCONNECT-Anweisung wird zum Abbrechen von Verbindungen verwendet.

Bei der Erstellung einer Verbindung mit Interactive SQL entspricht die Angabe von CONNECT [ USER ] Benutzer_ID der Ausführung einer SETUSER WITH OPTION Benutzer_ID-Anweisung. Weitere Hinweise finden Sie unter SETUSER-Anweisung.

In Interactive SQL erscheinen die Verbindungsinformationen (der Datenbankname, Ihre Benutzer-ID und der Datenbankserver) in der Titelleiste über dem Fensterausschnitt mit den SQL-Anweisungen. Wenn keine Verbindung zu einer Datenbank besteht, erscheint "Nicht verbunden" in der Titelleiste.

Hinweis

Syntax 1 und Syntax 2 sind beide mit Interactive SQL gültig, außer wenn Interactive SQL das hostvar-Argument nicht unterstützt.

Berechtigungen

Keine.

Nebenwirkungen

Keine.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Syntax 1 ist eine SQL/Foundation-Funktion außerhalb der Kern-SQL. Syntax 2 ist eine Erweiterung des Herstellers.

Beispiele

Die folgenden Beispiele zeigen, wie Sie CONNECT in Embedded SQL verwenden können.

EXEC SQL CONNECT AS :conn_name
USER :userid IDENTIFIED BY :password;
EXEC SQL CONNECT USER "DBA" IDENTIFIED BY "sql";

In den folgenden Beispielen wird davon ausgegangen, dass die SQL Anywhere-Beispieldatenbank bereits gestartet wurde.

Hier wird eine Verbindung zu einer Datenbank in Interactive SQL hergestellt. Interactive SQL fordert zur Eingabe einer Benutzer-ID und eines Kennworts auf.

CONNECT;

Hier wird eine Verbindung zur Standarddatenbank als DBA in Interactive SQL hergestellt. Interactive SQL fordert zur Eingabe eines Kennworts auf.

CONNECT USER "DBA";

Hier wird eine Verbindung zur Beispieldatenbank als Benutzer DBA in Interactive SQL hergestellt.

CONNECT
TO demo11
USER DBA
IDENTIFIED BY sql;

Hier wird eine Verbindung zur Beispieldatenbank unter Verwendung einer Verbindungszeichenfolge in Interactive SQL hergestellt.

CONNECT
USING 'UID=DBA;PWD=sql;DBN=demo';

Nachdem Sie eine Verbindung zur Beispieldatenbank hergestellt haben, erscheinen der Datenbankname, Ihre Benutzer-ID und der Name des Datenbankservers in der Titelleiste: demo (DBA) on demo11.