create a new page, using TOP as a template.
Front page
Backup
List of pages
Search
Recent changes
Help
Login
Start:
[[FrontPage]]へ~
-[[リファレンスガイド]]へ~
--[[Firebird SQLリファレンス]]へ~
&br;
----
*Firebird SQL リファレンス:CONNECT系,SET SQL DIALECT系 [#...
#contents
----
&br;
&aname(connect);
*CONNECT [#k444c8ec]
データベースに接続します。SQLで使用可能です。また、isql...
サブセットが使用できます。~
接続のキャラクタセットは、CONNECT の前に SET NAMES で設...
ます。日本語を取り扱う場合には、事前に設定を行う必要があ...
特に、データベース内でキャラクタセットを明示している場合...
この文書は、公開されているIB6のSQLレファレンスを基とし...
各リリースノートにおける追加内容に関して反映・統合されて...
**構文 [#gc87ea24]
isql(サブセット)形式:
CONNECT 'filespec' [USER 'username'][PASSWORD 'password']
[CACHE int] [ROLE 'rolename']
&br;
SQL形式:
CONNECT [TO] {ALL | DEFAULT} <config_opts>
| <db_specs> <config_opts> [, <db_specs> <config_opt...
&br;
<db_specs> = dbhandle | {'filespec' | :variable} AS dbha...
<config_opts> = [USER {'username' | :variable}]
[PASSWORD {'password' | :variable}]
[ROLE {'rolename' | :variable}]
[CACHE int [BUFFERS]]
&br;
&br;
|引数|説明|h
|{ALL|DEFAULT}|SET DATABASEで指定したすべてのデータベー...
|'filespec'|データベースのファイル名です。パスやノードの...
|dbhandle|事前に SET DATABASE で宣言したデータベースハン...
|:variable|ホスト言語の変数で、データベース名やユーザー名...
|AS dbhandle|宣言されたデータベースハンドルにデータベース...
|USER {'username'|:variable}|文字列もしくはホスト変数で...
|PASSWORD {'password'|:variable}|データベース接続のため...
|ROLE {'rolename'|:variable}|データベース接続のためのロ...
|CACHE int [BUFFERS]|データベース接続のキャッシュバッファ...
**詳細の説明 [#p7551be6]
&br;
-データベースデータストラクチャを初期化します。~
&br;
-データベース本体があるノード(ローカルデータベース)もしく...
別のノード(リモートデータベース)を指定します。データベー...
できない場所が指定された場合には、エラーが発生します。~
&br;
-データベース接続のためのユーザー名、パスワード、ロールな...
ものを選択して指定します。PCクライアントは、常に正しいユ...
を送信しなければなりません。データベースエンジンは、パス...
のみを認識します。~
&br;
ユーザーが環境変数の ISC_USER と ISC_PASSWORD を設定し...
されたユーザーが security.fdb または isc4.gdb に存在しな...
サーバマネージャーから、次のようなエラーを受取るはずです。~
"undefined user name and password.”(未定義のユーザーと...
サーバマネージャによって行われる自動接続は、ユーザーの...
バイパスします。~
&br;
-データベースへの接続時には次のことが行われます。~
1. ヘッダページ部分のベリファイ~
2. 既存データベースの存在チェック~
3. バージョンチェック。オンディスクストラクチャ(ODS)には...
バージョン番号があるので、データベースエンジンが扱えるバ...
かチェックします~
異常があった場合、データベースエンジンはエラーを返しま...
&br;
-必要な場合は、SET DATABASE を使用してデータベースハンド...
&br;
-データベース接続のために、指定したキャッシュバッファが確...
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムでは、CONNECT ...
接続する前に SET DATABASE を行う必要があります。isql では...
使用しません。~
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムでは、CONNECT ...
データベース接続を行えますが、接続ごとの文を用意すること...
可読性が向上します。~
&br;
-CONNECTでデータベースに接続するとき、デフォルトのキャラ...
となります。キャラクタセットを指定して接続したい場合は、...
を使用して設定します。~
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムではデフォルト...
は75ですが、CACHEオプションによりシステムで最大限利用可能...
確保できます。このオプションは以下のように使用できます。~
--CONNECT文で示された全データベース接続リストの中で、指定...
持っていないものに新しいデフォルトサイズを設定します。~
--1つのデータベース接続を使用するプログラムのキャッシュ...
--デフォルト値は変更せずに、1つのデータベース接続のキャ...
変更します。~
接続が維持されている限り、そのキャッシュサイズは変更さ...
データベース接続がマルチクライアント・サーバ接続で行われ...
の接続が終了するまでキャッシュサイズの増加は行われません...
の減少は、すべてのデータベース接続が終了するまで行われま...
&br;
-isqlでは、データベースファイル名、ユーザー名、パスワード...
のサブセットが使用できます。また、isqlでは同時に複数のデ...
ことは出来ません。新しいCONNECT文を使用すると、それまでの...
されます。~
**用例 [#t41d3c72]
-isqlで、データベースを開く例です。
CONNECT 'employee.fdb' USER 'ACCT_REC' PASSWORD 'peanuts';
-isqlで、キャラクタセットをシフトJISに設定してデータベー...
日本語を正しく扱うには、''事前に''キャラクタセットを設定...
SET NAMES SJIS_0208;
CONNECT 'employee.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
-埋め込みSQLでの使用例です。データベースハンドルを使用し...
変数で与えています。
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
EXEC SQL
CONNECT :db_file AS DB1;
-埋め込みSQLでの使用例です。accounts.fdb への接続でキャッ...
を150に設定しています。
EXEC SQL
CONNECT 'accounts.fdb' CACHE 150;
-埋め込みSQLでの使用例です。事前に SET DATABASE で指定し...
に対し、指定したユーザー名で接続します。
EXEC SQL
CONNECT ALL USER 'ACCT_REC' PASSWORD 'peanuts'
CACHE 50;
-埋め込みSQLでの使用例です。キャッシュサイズを、employee....
employee2.fdbはデフォルトの 75 にします。
EXEC SQL
CONNECT 'employee.fdb' CACHE 80, 'employee2.fdb';
-埋め込みSQLでの使用例です。接続するすべてのデータベース...
を 50 にします。
EXEC SQL
CONNECT ALL CACHE 50;
-埋め込みSQLでの使用例です。キャッサイズを各々 80 にします。
EXEC SQL
CONNECT EMP1 CACHE 80, EMP2 CACHE 80;
-埋め込みSQLでの使用例です。ホスト変数で指定した2つのデ...
別々のユーザーとして接続しています。
EXEC SQL
CONNECT
:orderdb AS DB1 USER 'ACCT_REC' PASSWORD 'peanuts',
:salesdb AS DB2 USER 'ACCT_PAY' PASSWORD 'payout';
**参照 [#s4284111]
[[DISCONNECT>#disconnect]] , [[SET DATABASE>#set_database...
[[SET NAMES>#set_names]]
&br;
&br;
キャッシュバッファに関するより詳細は Data Definition Gu...
を、データベースセキュリティとisqlに関するより詳細は、Ope...
して下さい。
&br;
&br;
----
&br;
&br;
&aname(disconnect);
*DISCONNECT [#i984caa6]
データベースとの接続を切断します。SQLで使用できます。
isqlでは使用できません。
**構文 [#hf99e041]
DISCONNECT {
{ALL | DEFAULT} | dbhandle [, dbhandle] …]
} ;
&br;
&br;
|引数|説明|h
|ALL|DEFAULT|どちらを指定しても、すべてのデータベース接...
|dbhandle|事前に宣言したデータベースハンドルを指定して、...
**詳細の説明 [#od2ec64c]
DISCONNECTは、すべてまたはデータベースハンドルで指定し...
切断し、その接続で使用されたリソースを解放します。gpre で...
が指定されていないかぎり、デフォルトのトランザクションを...
デフォルト以外のトランザクションはコミットを行わず、エラ...
&br;
DISCONNECTによる切断を行う前に、接続中であるデータベー...
に対し、コミットまたはロールバックを行ってください。~
&br;
DISCONNECTによって切断されたデータベースに再接続するに...
行う必要があります。~
&br;
**用例 [#w382afbe]
すべて、埋め込みSQLの例です。
-すべてのデータベース接続を切断します。
EXEC SQL
DISCONNECT DEFAULT;
EXEC SQL
DISCONNECT ALL;
-指定したデータベースハンドルの接続を切断します。
EXEC SQL
DISCONNECT DB1;
EXEC SQL
DISCONNECT DB1, DB2;
**参照 [#sd084f2d]
COMMIT , [[CONNECT>#connect]] , ROLLBACK , [[SET DATABA...
&br;
&br;
----
&br;
&br;
&aname(set_database);
*SET DATABASE [#p211fa27]
データベースへアクセスするためのデータベースハンドルを...
SQL で使用できます。~
Firebirdでは、スキーマ機能は実装されていませんので、DAT...
としても機能としては同じとなります。
**構文 [#z0da7b2d]
SET {DATABASE | SCHEMA} dbhandle =
[GLOBAL | STATIC | EXTERN][COMPILETIME][FILENAME] 'd...
[USER 'name' PASSWORD 'string']
[RUNTIME [FILENAME]
{'dbname' | :var}
[USER {'name' | :var} PASSWORD {'string' |:var}]
];
&br;
&br;
|引数|説明|h
|dbhandle|データベースハンドル。データベース指定に対する...
|~|・プログラム中で一意である必要があります。|
|~|・以降のSQL文でデータベースハンドルが使用できるように...
|GLOBAL|デフォルトです。作成した宣言は、すべてのモジュー...
|STATIC|宣言は、現在のモジュールでのみ有効になります。|
|EXTERN|別のモジュールで宣言したものを参照して、新しいデ...
|COMPILETIME|列参照のプリプロセッサ処理中に、使用するデー...
|~|・1つのデータベースが指定されていれば、その認識は動作...
|'dbname'|データベースハンドルに割当てる、データベースフ...
|RUNTIME|プリプロセッサ処理のために指定したデータベースと...
|:var|ホスト言語変数により、データベースの指定やユーザー...
|USER 'name'|接続するデータベースサーバが正当に認識するユ...
|~|・データベースサーバに接続するためには、PASSWORD の指...
|~|・PCクライアント接続のために要求されます。(他の接続の...
|PASSWORD 'string'|接続するデータベースサーバが正当に認識...
|~|・データベースサーバに接続するためには、USER の指定が...
|~|・PCクライアント接続のために要求されます。(他の接続の...
&br;
**詳細の説明 [#t3f77213]
SET DATABASE は、データベースハンドルの宣言を行い、デー...
関連付けを行います。オプション指定により、コンパイル時と...
データベースを指定することが出来ます。複数のデータベース...
(埋め込みSQL等を使用した)アプリケーションは、各データベー...
データベースハンドルを宣言するために、SET DATABASE を必ず...
あります。~
&br;
「dbhandle」は、アプリケーションで定義するデータベース...
通常、データベースハンドルの名前は、実際のデータベースの...
ものを使用します。ここで宣言したデータベースハンドルは、...
COMMIT, ROLLBACk で使用出来ます。それは、トランザクション...
の異なるデータベースに同じ名前のテーブルを含んでいる場合...
の区別を行うために使用出来ます。~
&br;
「dbname」は、データベースハンドルが実際のデータベース...
必要なファイルの指定を行うもので、内容はプラットフォーム...
これは、データベースサーバが認識するファイル指定方法で記...
あります。~
&br;
GLOBAL, STATIC, EXTERN は、データベース宣言のスコープを...
です。デフォルトである GLOBAL は、データベースハンドルが...
コードの全域で使用可能とすることを宣言します。STATIC は、...
行ったモジュールでのみ使用可能とします。EXTERN は、データ...
宣言が、別モジュールで GLOBAL と宣言されているものを参照...
示します。~
&br;
オプション、COMPILETIME と RUNTIME を使用することにより...
ハンドルで、コンパイル時と実行時で別のデータベースを使用...
ことが出来ます。省略時、または COMPILETIME のみの指定を行...
データベースエンジンはプリプロセッサ処理時と実行時で同一...
します。~
&br;
USER および PASSWORD パラメータの指定は、PCクライアント...
では必須です。しかし、他のリモート接続においてはオプショ...
ユーザー名およびパスワードのセキュリティデータベースとの...
遠隔サーバによって行われます。
**用例 [#fd7b4d74]
例は、すべて埋め込みSQLプログラムの場合です。~
-データベースハンドルの宣言を行います。
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
&br;
-コンパイル時と実行時で、別のデータベースを使用できるよう...
実行時にはホスト言語変数によって指定を行います。
EXEC SQL
SET DATABASE EMDBP = 'employee.fdb' RUNTIME :db_name;
**参照 [#h6dd4559]
COMMIT , [[CONNECT>#connect]] , ROLLBACK , [[SELECT]]
&br;
&br;
さらに詳細が知りたい場合は、Operations Guide の securit...
参照して下さい。~
&br;
&br;
----
&br;
&br;
&aname(set_names);
*SET NAMES [#fe5edc97]
以降の接続で有効になるキャラクタセットを設定します。
SQL および isql で使用できます。
**構文 [#l6f352a9]
SET NAMES [charset | :var];
&br;
※ DSQLで使用する場合、終端文字のセミコロンは不要です。
isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端...
&br;
&br;
|引数|説明|h
|charset|プロセスで使用する有効なキャラクタセットの名前で...
|:var|キャラクタセット名をホスト言語変数で指定します。|
|~|・事前に宣言されたキャラクタセット名であることが必要で...
|~|・SQLでのみ有効です。|
**詳細の説明 [#a99269df]
SET NAMES は、以降のデータベース接続で用いられるキャラ...
します。これを設定することにより、サーバで設定されたキャ...
クライアントアプリケーションの間で、文字コードの変換処理...
となります。~
&br;
SET NAMES は、それが影響を及ぼす CONNECT 文よりも前に実...
あります。~
&br;
組込みアプリケーションでは、SET NAMES のキャラクタセッ...
で行うことにより、対話的な設定も出来ます。~
&br;
キャラクタセットの指定は、指定可能な(ソート順序に影響を...
オーダーのサブセットを限定します。キャラクタセットとコレ...
指定を行うと、SELECT,INSERT,UPDATEを行うときの列データに...
''重要''~
デフォルトキャラクタセットを指定しない限り、デフォルト...
場合と同じになります。キャラクタセットに NONE を指定する...
列には「特定のキャラクタセットがない」と仮定されたことに...
格納や取り出すときにはオリジナルのデータがそのまま使用さ...
した列には、どのようなキャラクタセットのデータもロードで...
しかし、そのデータを NONE 以外のキャラクタセットを指定し...
は出来ません。それは、ソースからディストネーションに転送...
行われないためです。したがって、大抵の場合はエラーを発生...
&br;
&br;
**用例 [#b3204e21]
-埋め込みSQLを使用したプログラムで SET NAMES を使用する例...
EXEC SQL
SET NAMES ISO8859_1;
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
EXEC SQL
CONNECT;
-isqlで SET NAMES を使用する例です。
SET NAMES EUCJ_0208;
CONNECT 'employee.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
**参照 [#f3847d4c]
[[CONNECT>#connect]] , [[SET DATABASE>#set_database]]
&br;
&br;
より詳細が知りたい場合は、[[キャラクタセット・データ型...
Data Definition Guide を参照して下さい。
&br;
&br;
&br;
----
&br;
&br;
&aname(set_sql_dialect);
*SET SQL DIALECT [#a4ad65b4]
データベースアクセス時の SQL Dialect 値を宣言します。
gpre, isql, wisql, SQL で使用可能です。~
**構文 [#lce9a08f]
SET SQL DIALECT n;
&br;
&br;
|引数|説明|h
|n|SQL Dialect を指定します。以下の指定が可能です。|
|~|1 : InterBase5.5 以前|
|~|2 : 1から3へ移行時のフラグ|
|~|3 : Firebird/InterBase6以降。拡張された数値、DATE、TIM...
&br;
**詳細の説明 [#s8801a66]
SET SQL DIALECT により、データベースアクセスの SQL Dial...
&br;
Dailect は、1,2,3の中から指定できます。指定を行わなかっ...
に指定したデータベースの Dialect になります。宣言を行った...
が異なった場合は警告が発生しますが、デフォルト値は宣言を...
されます。~
&br;
**用例 [#j0db0919]
埋め込み SQL プログラムでの例です。
EXEC SQL
SET SQL DIALECT 3;
**参照 [#oc5585ac]
[[SHOW SQL DIALECT>#show_sql_dialect]]
&br;
&br;
----
&br;
&br;
&aname(show_sql_dialect);
*SHOW SQL DIALECT [#w524ae44]
現在のクライアントの SQL Dialect 設定とデータベースの S...
を返します。~
gpre, isql, wisql, SQL で使用できます。~
**構文 [#xd396bb9]
SHOW SQL DIALECT;
**詳細の説明 [#ua86bf56]
SHOW SQL DIALECT により、現在のクライアントの SQL Diale...
データベースの SQL Dialect 値が得られます。得られる設定/...
のどれかです。~
詳細に関しては、[[SET SQL DIALECT>#set_sql_dialect]]を...
**用例 [#v5ff3010]
埋め込み SQL プログラムでの例です。
EXEC SQL
SHOW SQL DIALECT;
**参照 [#y0849820]
[[SET SQL DIALECT>#set_sql_dialect]]
End:
[[FrontPage]]へ~
-[[リファレンスガイド]]へ~
--[[Firebird SQLリファレンス]]へ~
&br;
----
*Firebird SQL リファレンス:CONNECT系,SET SQL DIALECT系 [#...
#contents
----
&br;
&aname(connect);
*CONNECT [#k444c8ec]
データベースに接続します。SQLで使用可能です。また、isql...
サブセットが使用できます。~
接続のキャラクタセットは、CONNECT の前に SET NAMES で設...
ます。日本語を取り扱う場合には、事前に設定を行う必要があ...
特に、データベース内でキャラクタセットを明示している場合...
この文書は、公開されているIB6のSQLレファレンスを基とし...
各リリースノートにおける追加内容に関して反映・統合されて...
**構文 [#gc87ea24]
isql(サブセット)形式:
CONNECT 'filespec' [USER 'username'][PASSWORD 'password']
[CACHE int] [ROLE 'rolename']
&br;
SQL形式:
CONNECT [TO] {ALL | DEFAULT} <config_opts>
| <db_specs> <config_opts> [, <db_specs> <config_opt...
&br;
<db_specs> = dbhandle | {'filespec' | :variable} AS dbha...
<config_opts> = [USER {'username' | :variable}]
[PASSWORD {'password' | :variable}]
[ROLE {'rolename' | :variable}]
[CACHE int [BUFFERS]]
&br;
&br;
|引数|説明|h
|{ALL|DEFAULT}|SET DATABASEで指定したすべてのデータベー...
|'filespec'|データベースのファイル名です。パスやノードの...
|dbhandle|事前に SET DATABASE で宣言したデータベースハン...
|:variable|ホスト言語の変数で、データベース名やユーザー名...
|AS dbhandle|宣言されたデータベースハンドルにデータベース...
|USER {'username'|:variable}|文字列もしくはホスト変数で...
|PASSWORD {'password'|:variable}|データベース接続のため...
|ROLE {'rolename'|:variable}|データベース接続のためのロ...
|CACHE int [BUFFERS]|データベース接続のキャッシュバッファ...
**詳細の説明 [#p7551be6]
&br;
-データベースデータストラクチャを初期化します。~
&br;
-データベース本体があるノード(ローカルデータベース)もしく...
別のノード(リモートデータベース)を指定します。データベー...
できない場所が指定された場合には、エラーが発生します。~
&br;
-データベース接続のためのユーザー名、パスワード、ロールな...
ものを選択して指定します。PCクライアントは、常に正しいユ...
を送信しなければなりません。データベースエンジンは、パス...
のみを認識します。~
&br;
ユーザーが環境変数の ISC_USER と ISC_PASSWORD を設定し...
されたユーザーが security.fdb または isc4.gdb に存在しな...
サーバマネージャーから、次のようなエラーを受取るはずです。~
"undefined user name and password.”(未定義のユーザーと...
サーバマネージャによって行われる自動接続は、ユーザーの...
バイパスします。~
&br;
-データベースへの接続時には次のことが行われます。~
1. ヘッダページ部分のベリファイ~
2. 既存データベースの存在チェック~
3. バージョンチェック。オンディスクストラクチャ(ODS)には...
バージョン番号があるので、データベースエンジンが扱えるバ...
かチェックします~
異常があった場合、データベースエンジンはエラーを返しま...
&br;
-必要な場合は、SET DATABASE を使用してデータベースハンド...
&br;
-データベース接続のために、指定したキャッシュバッファが確...
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムでは、CONNECT ...
接続する前に SET DATABASE を行う必要があります。isql では...
使用しません。~
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムでは、CONNECT ...
データベース接続を行えますが、接続ごとの文を用意すること...
可読性が向上します。~
&br;
-CONNECTでデータベースに接続するとき、デフォルトのキャラ...
となります。キャラクタセットを指定して接続したい場合は、...
を使用して設定します。~
&br;
-(埋め込みSQLなどで)SQLを使用するプログラムではデフォルト...
は75ですが、CACHEオプションによりシステムで最大限利用可能...
確保できます。このオプションは以下のように使用できます。~
--CONNECT文で示された全データベース接続リストの中で、指定...
持っていないものに新しいデフォルトサイズを設定します。~
--1つのデータベース接続を使用するプログラムのキャッシュ...
--デフォルト値は変更せずに、1つのデータベース接続のキャ...
変更します。~
接続が維持されている限り、そのキャッシュサイズは変更さ...
データベース接続がマルチクライアント・サーバ接続で行われ...
の接続が終了するまでキャッシュサイズの増加は行われません...
の減少は、すべてのデータベース接続が終了するまで行われま...
&br;
-isqlでは、データベースファイル名、ユーザー名、パスワード...
のサブセットが使用できます。また、isqlでは同時に複数のデ...
ことは出来ません。新しいCONNECT文を使用すると、それまでの...
されます。~
**用例 [#t41d3c72]
-isqlで、データベースを開く例です。
CONNECT 'employee.fdb' USER 'ACCT_REC' PASSWORD 'peanuts';
-isqlで、キャラクタセットをシフトJISに設定してデータベー...
日本語を正しく扱うには、''事前に''キャラクタセットを設定...
SET NAMES SJIS_0208;
CONNECT 'employee.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
-埋め込みSQLでの使用例です。データベースハンドルを使用し...
変数で与えています。
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
EXEC SQL
CONNECT :db_file AS DB1;
-埋め込みSQLでの使用例です。accounts.fdb への接続でキャッ...
を150に設定しています。
EXEC SQL
CONNECT 'accounts.fdb' CACHE 150;
-埋め込みSQLでの使用例です。事前に SET DATABASE で指定し...
に対し、指定したユーザー名で接続します。
EXEC SQL
CONNECT ALL USER 'ACCT_REC' PASSWORD 'peanuts'
CACHE 50;
-埋め込みSQLでの使用例です。キャッシュサイズを、employee....
employee2.fdbはデフォルトの 75 にします。
EXEC SQL
CONNECT 'employee.fdb' CACHE 80, 'employee2.fdb';
-埋め込みSQLでの使用例です。接続するすべてのデータベース...
を 50 にします。
EXEC SQL
CONNECT ALL CACHE 50;
-埋め込みSQLでの使用例です。キャッサイズを各々 80 にします。
EXEC SQL
CONNECT EMP1 CACHE 80, EMP2 CACHE 80;
-埋め込みSQLでの使用例です。ホスト変数で指定した2つのデ...
別々のユーザーとして接続しています。
EXEC SQL
CONNECT
:orderdb AS DB1 USER 'ACCT_REC' PASSWORD 'peanuts',
:salesdb AS DB2 USER 'ACCT_PAY' PASSWORD 'payout';
**参照 [#s4284111]
[[DISCONNECT>#disconnect]] , [[SET DATABASE>#set_database...
[[SET NAMES>#set_names]]
&br;
&br;
キャッシュバッファに関するより詳細は Data Definition Gu...
を、データベースセキュリティとisqlに関するより詳細は、Ope...
して下さい。
&br;
&br;
----
&br;
&br;
&aname(disconnect);
*DISCONNECT [#i984caa6]
データベースとの接続を切断します。SQLで使用できます。
isqlでは使用できません。
**構文 [#hf99e041]
DISCONNECT {
{ALL | DEFAULT} | dbhandle [, dbhandle] …]
} ;
&br;
&br;
|引数|説明|h
|ALL|DEFAULT|どちらを指定しても、すべてのデータベース接...
|dbhandle|事前に宣言したデータベースハンドルを指定して、...
**詳細の説明 [#od2ec64c]
DISCONNECTは、すべてまたはデータベースハンドルで指定し...
切断し、その接続で使用されたリソースを解放します。gpre で...
が指定されていないかぎり、デフォルトのトランザクションを...
デフォルト以外のトランザクションはコミットを行わず、エラ...
&br;
DISCONNECTによる切断を行う前に、接続中であるデータベー...
に対し、コミットまたはロールバックを行ってください。~
&br;
DISCONNECTによって切断されたデータベースに再接続するに...
行う必要があります。~
&br;
**用例 [#w382afbe]
すべて、埋め込みSQLの例です。
-すべてのデータベース接続を切断します。
EXEC SQL
DISCONNECT DEFAULT;
EXEC SQL
DISCONNECT ALL;
-指定したデータベースハンドルの接続を切断します。
EXEC SQL
DISCONNECT DB1;
EXEC SQL
DISCONNECT DB1, DB2;
**参照 [#sd084f2d]
COMMIT , [[CONNECT>#connect]] , ROLLBACK , [[SET DATABA...
&br;
&br;
----
&br;
&br;
&aname(set_database);
*SET DATABASE [#p211fa27]
データベースへアクセスするためのデータベースハンドルを...
SQL で使用できます。~
Firebirdでは、スキーマ機能は実装されていませんので、DAT...
としても機能としては同じとなります。
**構文 [#z0da7b2d]
SET {DATABASE | SCHEMA} dbhandle =
[GLOBAL | STATIC | EXTERN][COMPILETIME][FILENAME] 'd...
[USER 'name' PASSWORD 'string']
[RUNTIME [FILENAME]
{'dbname' | :var}
[USER {'name' | :var} PASSWORD {'string' |:var}]
];
&br;
&br;
|引数|説明|h
|dbhandle|データベースハンドル。データベース指定に対する...
|~|・プログラム中で一意である必要があります。|
|~|・以降のSQL文でデータベースハンドルが使用できるように...
|GLOBAL|デフォルトです。作成した宣言は、すべてのモジュー...
|STATIC|宣言は、現在のモジュールでのみ有効になります。|
|EXTERN|別のモジュールで宣言したものを参照して、新しいデ...
|COMPILETIME|列参照のプリプロセッサ処理中に、使用するデー...
|~|・1つのデータベースが指定されていれば、その認識は動作...
|'dbname'|データベースハンドルに割当てる、データベースフ...
|RUNTIME|プリプロセッサ処理のために指定したデータベースと...
|:var|ホスト言語変数により、データベースの指定やユーザー...
|USER 'name'|接続するデータベースサーバが正当に認識するユ...
|~|・データベースサーバに接続するためには、PASSWORD の指...
|~|・PCクライアント接続のために要求されます。(他の接続の...
|PASSWORD 'string'|接続するデータベースサーバが正当に認識...
|~|・データベースサーバに接続するためには、USER の指定が...
|~|・PCクライアント接続のために要求されます。(他の接続の...
&br;
**詳細の説明 [#t3f77213]
SET DATABASE は、データベースハンドルの宣言を行い、デー...
関連付けを行います。オプション指定により、コンパイル時と...
データベースを指定することが出来ます。複数のデータベース...
(埋め込みSQL等を使用した)アプリケーションは、各データベー...
データベースハンドルを宣言するために、SET DATABASE を必ず...
あります。~
&br;
「dbhandle」は、アプリケーションで定義するデータベース...
通常、データベースハンドルの名前は、実際のデータベースの...
ものを使用します。ここで宣言したデータベースハンドルは、...
COMMIT, ROLLBACk で使用出来ます。それは、トランザクション...
の異なるデータベースに同じ名前のテーブルを含んでいる場合...
の区別を行うために使用出来ます。~
&br;
「dbname」は、データベースハンドルが実際のデータベース...
必要なファイルの指定を行うもので、内容はプラットフォーム...
これは、データベースサーバが認識するファイル指定方法で記...
あります。~
&br;
GLOBAL, STATIC, EXTERN は、データベース宣言のスコープを...
です。デフォルトである GLOBAL は、データベースハンドルが...
コードの全域で使用可能とすることを宣言します。STATIC は、...
行ったモジュールでのみ使用可能とします。EXTERN は、データ...
宣言が、別モジュールで GLOBAL と宣言されているものを参照...
示します。~
&br;
オプション、COMPILETIME と RUNTIME を使用することにより...
ハンドルで、コンパイル時と実行時で別のデータベースを使用...
ことが出来ます。省略時、または COMPILETIME のみの指定を行...
データベースエンジンはプリプロセッサ処理時と実行時で同一...
します。~
&br;
USER および PASSWORD パラメータの指定は、PCクライアント...
では必須です。しかし、他のリモート接続においてはオプショ...
ユーザー名およびパスワードのセキュリティデータベースとの...
遠隔サーバによって行われます。
**用例 [#fd7b4d74]
例は、すべて埋め込みSQLプログラムの場合です。~
-データベースハンドルの宣言を行います。
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
&br;
-コンパイル時と実行時で、別のデータベースを使用できるよう...
実行時にはホスト言語変数によって指定を行います。
EXEC SQL
SET DATABASE EMDBP = 'employee.fdb' RUNTIME :db_name;
**参照 [#h6dd4559]
COMMIT , [[CONNECT>#connect]] , ROLLBACK , [[SELECT]]
&br;
&br;
さらに詳細が知りたい場合は、Operations Guide の securit...
参照して下さい。~
&br;
&br;
----
&br;
&br;
&aname(set_names);
*SET NAMES [#fe5edc97]
以降の接続で有効になるキャラクタセットを設定します。
SQL および isql で使用できます。
**構文 [#l6f352a9]
SET NAMES [charset | :var];
&br;
※ DSQLで使用する場合、終端文字のセミコロンは不要です。
isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端...
&br;
&br;
|引数|説明|h
|charset|プロセスで使用する有効なキャラクタセットの名前で...
|:var|キャラクタセット名をホスト言語変数で指定します。|
|~|・事前に宣言されたキャラクタセット名であることが必要で...
|~|・SQLでのみ有効です。|
**詳細の説明 [#a99269df]
SET NAMES は、以降のデータベース接続で用いられるキャラ...
します。これを設定することにより、サーバで設定されたキャ...
クライアントアプリケーションの間で、文字コードの変換処理...
となります。~
&br;
SET NAMES は、それが影響を及ぼす CONNECT 文よりも前に実...
あります。~
&br;
組込みアプリケーションでは、SET NAMES のキャラクタセッ...
で行うことにより、対話的な設定も出来ます。~
&br;
キャラクタセットの指定は、指定可能な(ソート順序に影響を...
オーダーのサブセットを限定します。キャラクタセットとコレ...
指定を行うと、SELECT,INSERT,UPDATEを行うときの列データに...
''重要''~
デフォルトキャラクタセットを指定しない限り、デフォルト...
場合と同じになります。キャラクタセットに NONE を指定する...
列には「特定のキャラクタセットがない」と仮定されたことに...
格納や取り出すときにはオリジナルのデータがそのまま使用さ...
した列には、どのようなキャラクタセットのデータもロードで...
しかし、そのデータを NONE 以外のキャラクタセットを指定し...
は出来ません。それは、ソースからディストネーションに転送...
行われないためです。したがって、大抵の場合はエラーを発生...
&br;
&br;
**用例 [#b3204e21]
-埋め込みSQLを使用したプログラムで SET NAMES を使用する例...
EXEC SQL
SET NAMES ISO8859_1;
EXEC SQL
SET DATABASE DB1 = 'employee.fdb';
EXEC SQL
CONNECT;
-isqlで SET NAMES を使用する例です。
SET NAMES EUCJ_0208;
CONNECT 'employee.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
**参照 [#f3847d4c]
[[CONNECT>#connect]] , [[SET DATABASE>#set_database]]
&br;
&br;
より詳細が知りたい場合は、[[キャラクタセット・データ型...
Data Definition Guide を参照して下さい。
&br;
&br;
&br;
----
&br;
&br;
&aname(set_sql_dialect);
*SET SQL DIALECT [#a4ad65b4]
データベースアクセス時の SQL Dialect 値を宣言します。
gpre, isql, wisql, SQL で使用可能です。~
**構文 [#lce9a08f]
SET SQL DIALECT n;
&br;
&br;
|引数|説明|h
|n|SQL Dialect を指定します。以下の指定が可能です。|
|~|1 : InterBase5.5 以前|
|~|2 : 1から3へ移行時のフラグ|
|~|3 : Firebird/InterBase6以降。拡張された数値、DATE、TIM...
&br;
**詳細の説明 [#s8801a66]
SET SQL DIALECT により、データベースアクセスの SQL Dial...
&br;
Dailect は、1,2,3の中から指定できます。指定を行わなかっ...
に指定したデータベースの Dialect になります。宣言を行った...
が異なった場合は警告が発生しますが、デフォルト値は宣言を...
されます。~
&br;
**用例 [#j0db0919]
埋め込み SQL プログラムでの例です。
EXEC SQL
SET SQL DIALECT 3;
**参照 [#oc5585ac]
[[SHOW SQL DIALECT>#show_sql_dialect]]
&br;
&br;
----
&br;
&br;
&aname(show_sql_dialect);
*SHOW SQL DIALECT [#w524ae44]
現在のクライアントの SQL Dialect 設定とデータベースの S...
を返します。~
gpre, isql, wisql, SQL で使用できます。~
**構文 [#xd396bb9]
SHOW SQL DIALECT;
**詳細の説明 [#ua86bf56]
SHOW SQL DIALECT により、現在のクライアントの SQL Diale...
データベースの SQL Dialect 値が得られます。得られる設定/...
のどれかです。~
詳細に関しては、[[SET SQL DIALECT>#set_sql_dialect]]を...
**用例 [#v5ff3010]
埋め込み SQL プログラムでの例です。
EXEC SQL
SHOW SQL DIALECT;
**参照 [#y0849820]
[[SET SQL DIALECT>#set_sql_dialect]]
Page:
New
Rename
Front page
List of pages
Search
Recent changes
Backup
Help
RSS of recent changes