lpctName
生成するDBConnectionオブジェクトの名前を指定します。このとき,同じDBMSを使用するDBDriverオブジェクト内でユニークな名前を指定してください。
ここで指定した名前は,DABrokerのデータベースアクセストレースのPAPNAMEおよび拡張データベースアクセストレースのClient Nameに出力されます。また,HiRDBを使用している場合は,HiRDBクライアント環境定義のPDCLTAPNAMEに設定されます。
lpctUID
接続先データベースのユーザIDを指定します。
データベースにアクセスするためのユーザID,又はNULLを指定します。
NULLを指定した場合,接続先データベース定義ファイルに指定されたユーザIDを利用します。
SQL/K,又はXDM/SDの場合,Database Connection Serverの認証属性の設定によっては,不正な値を設定してもデータベースに接続できるので注意してください。認証属性の詳細については,マニュアル「Database Connection Server」を参照してください。
TPBrokerのOTSインタフェース,又はOpenTP1連携を使ったトランザクション制御の場合は省略できません。
lpctPWD
接続先データベースのパスワードを指定します。
ユーザIDに対応したパスワード,又はNULLを指定します。
NULLを指定した場合,接続先データベース定義ファイルに指定されたパスワードを利用します。SQL Anywhere,Adaptive Server Anywhereの場合は,ODBCのデータソース中でパスワードを指定している場合は,そのパスワードを利用することができます。
SQL/K,又はXDM/SDの場合,Database Connection Serverの認証属性の設定によっては,不正な値を設定してもデータベースに接続できるので注意してください。認証属性の詳細については,マニュアル「Database Connection Server」を参照してください。
TPBrokerのOTSインタフェース,又はOpenTP1連携を使ったトランザクション制御の場合は省略できません。
lpctDBN
- C++クラスライブラリを使ったトランザクション制御の場合
通常はNULLを指定します。
データベースによっては,lpctDBNに接続先情報を指定できます。詳しい内容については,このメソッドの機能詳細を参照してください。
- TPBrokerのOTSインタフェースを使ったトランザクション制御の場合
ORACLE使用時は,xa_open文字列のDBフィールドで指定するデータベース名を指定します。
HiRDB使用時は,NULLを指定します。
- OpenTP1連携を使ったトランザクション制御の場合
NULLを指定します。
lpctOPT
- C++クラスライブラリを使ったトランザクション制御の場合
通常はNULLを指定します。
以降の引数をすべて省略する場合はこの引数の指定も省略できます。
HiRDBの場合,HiRDBクライアント環境定義の環境変数を指定できます。
データベースによっては,lpctDBNに接続先情報を指定できます。
また,HiRDBの場合,HiRDBクライアント環境定義の環境変数を指定できます。
詳しい内容については,このメソッドの機能詳細を参照してください。
- TPBrokerのOTSインタフェースを使ったトランザクション制御の場合
ORACLE使用時は,NULLを指定します。
HiRDB使用時は,"DABENVGRP=xxxx"という形式で,TMにHiRDBを登録する際に指定した環境変数グループ識別子を指定します。このとき,PDHOST,PDNAMEPORTは指定しないでください。
- OpenTP1連携を使ったトランザクション制御の場合
OpenTP1連携の場合,OpenTP1に一つのHiRDBしか登録されていない場合は,この引数は省略できます。OpenTP1に複数のHiRDBが登録されている場合は,環境変数グループ識別子を指定しないとエラーになります。環境変数グループ識別子の詳細についてはHiRDBのマニュアルを参照してください。
lpctAbstractName
- C++クラスライブラリを使ったトランザクション制御の場合
接続先データベース定義ファイル中の接続するデータベース名を指定します。
- TPBrokerのOTSインタフェース,又はOpenTP1連携を使ったトランザクション制御の場合
NULLを指定します。
swWait
検索対象のレコードがほかのトランザクションによってロックされている場合の動作を指定します。ここでの処理が,DBConnection内でのデフォルト値になります。DBStatementクラスのExecute,DBPreparedStatementクラスのExecute,及びDBCallableStatementクラスのSetProcedureメソッドの実行時にも指定できます。
SQL/Kの場合は,どの値を指定しても,ロックが解除されるまで待ち状態になります。
XDM/SDの場合は,どの値を指定しても,ロックが解除されるまで待たないで,すぐにエラーを返します。
- LOCK_OPT_NOWAIT,又は LOCK_OPT_WITH_ROLLBACK
ロックの解除を待たないで,すぐにエラーを返します。HiRDB又はXDM/RDの場合は同時にロールバックを実行します。それ以外のDBMSの場合は,ロールバックは実行しません。
- LOCK_OPT_WITHOUT_ROLLBACK
ロックの解除を待たないで,すぐにエラーを返します。ロールバックは実行しません。
ただし,現在のバージョンでは,XDM/RDではロールバックを実行します。また,HiRDBのDELETE,INSERT,UPDATE文では,このオプションは無効で,LOCK_OPT_WAITと同じ動作になります。
- LOCK_OPT_WAIT
ロックが解除されるまで待ちます。
swTimeout
現在のバージョンでは値を指定しても意味を持ちません。指定を省略する又は0を指定します。
swSync
コネクションごとに,データベースアクセス(SQL文)を同期処理,又は非同期処理のどちらで実行するかを指定します。
STMT_SYNC:SQL文を同期処理で実行します。
STMT_ASYNC:SQL文を非同期処理で実行します。
STMT_ASYNCを指定した場合,各ステートメントオブジェクトで実行されるSQL文は,子スレッドで処理されます。
- TPBrokerのOTSインタフェースでトランザクションを制御する場合
非同期処理のSTMT_ASYNCは指定できません。
- OpenTP1連携を使ったトランザクション制御の場合
省略するか,必ずSTMT_SYNCを指定します。ただし,グローバルトランザクションの制御対象とする場合,非同期処理はできません。
DBConnectionオブジェクトを生成し,データベースに接続します。DBConnectionオブジェクトはデータベースへの接続ごとに生成してください。
データベースの接続は,DBDriverオブジェクトの生成時に指定したデータベース種別名と,このメソッドで指定するデータベース名によって決められます。
また,いったん,Closeして再接続する場合は,DBConnectionクラスのConnectメソッドでも各項目について指定できます。
このメソッドは,非同期実行可能メソッドです。
- 接続先データベース定義ファイルの定義内容を使用しないで接続する場合の補足事項
データベースとの接続には,接続先データベース定義ファイルの使用をお勧めしますが,もし接続先データベース定義ファイル中の定義内容を使用しない場合には,引数lpctAbstractName で NULL を指定し,使用するDBMSごとに次の引数の指定が必要です。
ただし,Database Connection Server 経由で接続するデータベース,SQL Server, 及び Adaptive Server Anywhereを使用する場合は,lpctAbstractNameにNULLを指定できません。lpctAbstractNameにNULLを指定しなくても,次の引数に値を指定すれば,接続先データベース定義ファイルの定義内容ではなく,引数に指定した内容で接続します。
データベースとの接続には,接続先データベース定義ファイルの使用をお勧めしますが,もし使用しない場合には引数lpctAbstractNameでNULLを指定し,使用するDBMSごとに次の引数の指定が必要です。
- ORACLEの場合
引数lpctDBNに,SQL*NET経由で接続するORACLEのリスナー名称を指定します。リモートアクセスをしない場合はNULLを指定します。
- HiRDBの場合
引数lpctOPTに,"PDHOST=XXXX;PDNAMEPORT=XXXX"という形式で接続先を指定します。環境変数にPDHOST,PDNAMEPORTが設定されていれば省略できます。
- SQL Anywhere,Adaptive Server Anywhere,SQL Server の場合
引数lpctDBNにODBCのデータソース名を指定します。引数lpctOPTでデータソース名が定義されている場合は,この引数は省略できます。
引数lpctOPTにSQL Anywhere,Adaptive Server Anywhere,SQL Serverのデータベース接続パラメタ(ConnectionName以外)を指定できます。データベース接続パラメタでユーザIDやパスワードを指定した場合,Connectメソッドの引数に指定したユーザIDやパスワードよりも優先されます。
- RDA Link for Gateway経由のXDM/RDの場合
引数lpctOPTに,RDノード名を指定します。
- Database Connection Server経由のXDM/RDの場合
引数lpctOPTに,次に示す形式で接続先を指定します。
"RDNODE=xxxxx;DBHOST=xxxxx;SNDBUFSZ=xxxxx;RCVBUFSZ= xxxx"
- Database Connection Server経由のXDM/SDの場合
lpctOPTで次に示す形式で接続先を指定します。
"SDNODE=xxxxx;DBHOST=xxxxx;SNDBUFSZ=xxxxx;RCVBUFSZ=xxxxx"
- Database Connection Server経由のSQL/Kの場合
lpctOPTで次に示す形式で接続先を指定します。
"DBID=xxx1;DBHOST=xxx2;SNDBUFSZ=xxx3;RCVBUFSZ=xxx4"
xxx1:分散定義名を指定します。
xxx2:コネクションマルチ名を指定します。
xxx3:通信バッファサイズを指定します。この指定は省略できます。
xxx4:受信バッファサイズを調整します。この指定は省略できます。
各項目の詳細については,マニュアル「DABroker」を参照してください。
- TPBrokerのOTSインタフェースを使ったトランザクション制御の場合
引数lpctAbstractNameにだけNULLを指定します。
- HiRDBクライアント環境定義の環境変数指定
HiRDBの場合,HiRDBクライアント環境定義の環境変数をlpctOPTに指定できます。
引数の先頭に"DAB_HIRDBENV"がある場合,この接続でだけ有効にしたいHiRDBクライアント環境定義の環境変数をDAB_HIRDBENV+区切り文字(1バイト)"以降に記述します。
区切り文字に@を指定した場合の指定例を次に示します。
- (例1)
- "DAB_HIRDBENV@PDHOST=host.hitachi.co.jp@PDNAMEPORT=20000@PDSRVTYPE=VOS3@PDCWAITTIME=300"
- 接続時にHiRDBクライアントに以下の値を設定します。
- PDHOST=host.hitachi.co.jp
- PDNAMEPORT=20000
- PDSRVTYPE=VOS3
- PDCWAITTIME=300
- (例2)
- "DAB_HIRDBENV@DABENVGRP=XXXX"
- 接続時にHiRDB環境変数グループ識別子XXXXを指定します。
- 注意事項
- DAB_HIRDBENVの次の1文字には,必ずDABroker動作環境定義ファイル(dasysconf)中で指定した区切り文字(変数名:DAB_HIRDB_DBINF_ESC)を指定してください。
- DAB_HIRDBENVの文字列は必ず引数の先頭から指定してください。
それ以外の場所で記述しても有効になりません。
次のような指定をした場合の動作は保証しません。
" DAB_HIRDBENV@PDHOST=host@PDNAMEPORT=20000"
"DAB_HIRDBENVTEST@PDHOST=host@PDNAMEPORT=20000"
- 指定できるHiRDBの環境変数はPDUSER以外となります(PDUSERの指定は無視されます)。また,HiRDBで指定できる環境変数以外を指定した場合,動作は保証しません。
- 環境変数で指定した値は,DABroker for C++,及びDABrokerではエラーをチェックしないため,環境変数に誤りがある場合はHiRDBのエラーとなります。
- この機能を使用する場合,従来DABrokerで設定していた,PDCLTAPNAMEは設定されません。必要な場合は,この機能でPDCLTAPNAMEを指定してください。
- HiRDB環境変数グループ識別子を指定する場合,他のHiRDB環境変数の指定は無効となるので御注意ください。
- この機能の指定値は,実行ユーザ(.profile)の指定よりも優先されます。