データベースへの接続を確立します。
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 }
構文 2 の場合、connect-string はセミコロンで区切った keyword=value 形式のパラメータ設定リストです。一重引用符で囲んでください。
CONNECT 文は、database-server-name によって識別されるデータベースサーバ上で稼働している、database-name によって識別されるデータベースへの接続を確立します。この文は、プロシージャ、トリガ、イベント、またはバッチではサポートされていません。
構文 1 は、同じコンピュータ上で実行しているデータベースサーバへの共有メモリ接続に対してだけサポートされます。TCP/IP を使用してローカルデータベースサーバに接続したり、別のコンピュータ上で実行しているデータベースサーバに接続する場合は、構文 2 を使用してください。
Embedded SQL の動作 Embedded SQL では、database-server-name を指定しない場合、デフォルトのローカルデータベースサーバ (最初に起動するデータベースサーバ) が使用されます。database-name を指定しない場合、指定されたサーバ上の最初のデータベースが使用されます。
WHENEVER 文、SET SQLCA 文、一部の DECLARE 文はコードを生成しないので、ソースファイル内の CONNECT 文の前に置いてもかまいません。それ以外の場合は、CONNECT 文が正しく実行されるまで、どのような文も使用できません。
ユーザ ID とパスワードを使って、動的 SQL 文ごとに権限をチェックします。
SQL Anywhere の場合、Embedded SQL では構文 1 のみ有効です。Ultra Light の場合、Embedded SQL では構文 1 と構文 2 の両方を使用できます。
Interactive SQL の動作 CONNECT 文でデータベースまたはサーバを指定しない場合、Interactive SQL はデフォルトのサーバとデータベースには接続しないで、現在のデータベースとの接続を継続します。サーバ名を指定せずに、データベース名を指定する場合、Interactive SQL は現在のサーバの指定したデータベースに接続しようとします。データベース名を指定せずにサーバ名を指定する場合、Interactive SQL は指定したサーバのデフォルトデータベースに接続します。
たとえば、データベースに接続した状態で次のようなバッチを実行すると、同じデータベースに 2 つのテーブルが作成されます。
CREATE TABLE t1( c1 int ); CONNECT DBA IDENTIFIED BY sql; CREATE TABLE t2 (c1 int ); |
CONNECT 文が正しく実行されるまで、他のデータベース文を使用できません。
Interactive SQL をウィンドウモードで実行している場合、接続パラメータが足りないというプロンプトが表示されます。
Interactive SQL がコマンドプロンプトモード (-nogui はコマンドラインから Interactive SQL を開始したときに指定します) またはバッチモードで実行中の場合、または AS 句を付けずに CONNECT を実行した場合は、無名の接続が開かれます。別の無名の接続がすでに開いている場合には、古い接続は自動的に閉じられます。それ以外の場合は、CONNECT 文を実行しても、既存の接続は閉じられません。
複数の接続も、現在の接続という概念を使って管理されます。接続文が成功した後、新しい接続が現在の接続になります。別の接続に切り替えるには、SET CONNECTION 文を使います。DISCONNECT 文を使って接続を切断することができます。
Interactive SQL に接続するとき、CONNECT [ USER ] userid を指定することは、SETUSER WITH OPTION userid 文を実行することと同じです。
Interactive SQL では、接続情報 (データベース名、ユーザ ID、データベースサーバなど) は、[SQL 文] ウィンドウ枠の上のタイトルバーに表示されます。データベースに接続していない場合は、タイトルバーに [未接続] と表示されます。
Interactive SQL では構文 1 と構文 2 の両方が有効です。ただし、Interactive SQL では hostvar 引数をサポートしていないことに注意してください。
この SQL 文は SAP HANA データベースではサポートされていません。
なし
なし
SQL/2008 構文 1 は、SQL/2008 標準のオプション言語機能 F771 です。構文 2 はベンダー拡張です。
Transact-SQL 構文 1 と構文 2 はどちらも Adaptive Server Enterprise によってサポートされます。
次は、Embedded SQL 内での CONNECT 使用の例です。
EXEC SQL CONNECT AS :conn_name USER :userid IDENTIFIED BY :password; EXEC SQL CONNECT USER "DBA" IDENTIFIED BY "sql"; |
次の例では、SQL Anywhere サンプルデータベースが起動していることを前提としています。
Interactive SQL からデータベースに接続します。Interactive SQL がユーザ ID とパスワードを要求するプロンプトを表示します。
CONNECT; |
ユーザ DBA として Interactive SQL からデフォルトデータベースに接続します。Interactive SQL はパスワードを要求するプロンプトを表示します。
CONNECT USER "DBA"; |
DBA として Interactive SQL からサンプルデータベースに接続します。
CONNECT TO demo16 USER DBA IDENTIFIED BY sql; |
接続文字列を使って Interactive SQL からサンプルデータベースに接続します。
CONNECT USING 'UID=DBA;PWD=sql;DBN=demo'; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |