Stellt eine Verbindung zu einer Datenbank her.
CONNECT [ TO database-server-name ] [ DATABASE database-name ] [ AS connection-name ] [ USER ] userid [ IDENTIFIED BY password ]
database-server-name, database-name, connection-name, userid, password : { identifier | string | hostvar }
CONNECT USING connect-string
connect-string : { identifier | string | hostvar }
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.
Eine connect-string 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.
Die CONNECT-Anweisung stellt eine Verbindung zur Datenbank her, die durch database-name gekennzeichnet wird und auf dem mit database-server-name bezeichneten Datenbankserver läuft. Diese Anweisung wird in Prozeduren, Triggern, Ereignissen oder Batches nicht unterstützt.
Syntax 1 wird nur unterstützt für Shared Memory-Verbindungen mit Datenbankservern, die auf demselben Computer ausgeführt werden. Wenn Sie eine Verbindung zu einem lokalen Datenbankserver über TCP/IP oder zu einem Datenbankserver auf einem anderen Computer herstellen möchten, müssen Sie Syntax 2 verwenden.
Verhalten in Embedded SQL Wenn der database-server-name nicht angegeben ist, wird in Embedded SQL der vorgegebene lokale Datenbankserver angenommen (der erste Datenbankserver, der gestartet wird). Wenn kein database-name 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.
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 eine CONNECT-Anweisung 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 ] userid der Ausführung einer SETUSER WITH OPTION userid-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.
Syntax 1 und Syntax 2 sind beide in Interactive SQL gültig, außer wenn Interactive SQL das hostvar-Argument nicht unterstützt.
Keine.
Keine.
SQL/2008 Syntax 1 ist die optionale Sprachenfunktion F771 des SQL/2008-Standards. Syntax 2 ist eine Erweiterung des Herstellers.
Transact-SQL Sowohl Syntax 1 als auch Syntax 2 werden von Adaptive Server Enterprise unterstützt.
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.
Stellen Sie eine Verbindung zu einer Datenbank in Interactive SQL her. 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 demo12 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 demo12.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |