Connectメソッド

機能

DBConnectionオブジェクトを生成します。

接続先のデータベース名やユーザID,パスワードなどを指定して,データベースに接続します。

形式

DBConnection *Connect(LPCTSTR lpctName,
                     LPCTSTR lpctUID,
                     LPCTSTR lpctPWD,
                     LPCTSTR lpctDBN,
                     LPCTSTR lpctOPT = NULL,
                     LPCTSTR lpctAbstractName = NULL,
                     UINT16 swWait = LOCK_OPT_NOWAIT,
                     UINT16 swTimeout = 0,
                     UINT16 swSync = STMT_SYNC)  throw DBSQLCA

引数

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

lpctOPT

lpctAbstractName

swWait

検索対象のレコードがほかのトランザクションによってロックされている場合の動作を指定します。ここでの処理が,DBConnection内でのデフォルト値になります。DBStatementクラスのExecute,DBPreparedStatementクラスのExecute,及びDBCallableStatementクラスのSetProcedureメソッドの実行時にも指定できます。

SQL/Kの場合は,どの値を指定しても,ロックが解除されるまで待ち状態になります。

XDM/SDの場合は,どの値を指定しても,ロックが解除されるまで待たないで,すぐにエラーを返します。

swTimeout

現在のバージョンでは値を指定しても意味を持ちません。指定を省略する又は0を指定します。

swSync

コネクションごとに,データベースアクセス(SQL文)を同期処理,又は非同期処理のどちらで実行するかを指定します。

STMT_SYNC:SQL文を同期処理で実行します。

STMT_ASYNC:SQL文を非同期処理で実行します。

STMT_ASYNCを指定した場合,各ステートメントオブジェクトで実行されるSQL文は,子スレッドで処理されます。

戻り値

データ型:DBConnection*

DBConnectionオブジェクトへのポインタ。

機能詳細

DBConnectionオブジェクトを生成し,データベースに接続します。DBConnectionオブジェクトはデータベースへの接続ごとに生成してください。

データベースの接続は,DBDriverオブジェクトの生成時に指定したデータベース種別名と,このメソッドで指定するデータベース名によって決められます。

また,いったん,Closeして再接続する場合は,DBConnectionクラスのConnectメソッドでも各項目について指定できます。

このメソッドは,非同期実行可能メソッドです。

発生する例外

DBSQLCA(RetCode)

DB_ERROR_NOT_ENOUGH_MEMORY
メモリ容量が不足しています。
DB_ERROR_NAME_INVALID
DBConnectionオブジェクトの名前を指定していません。
DB_ERROR_CANNOT_BE_NULL
DBConnectionオブジェクトの名前にNULLを指定しています。
DB_ERROR_CONNECTSTRING_INVALID
接続文字列の形式が間違っています。
DB_ERROR_NAME_ALREADY_USED
指定した名前は既に使用されています。
DB_DRV_ERROR_CONNECT_NAME_ALREADY
同じDBConnectionオブジェクト名で既に接続しています。
DB_ERROR_DRIVER_ERROR
DBMSでエラーが発生しました。
DB_ERROR_DAB_ACCESS_ERROR
DABrokerでエラーが発生しました。DBSQLCAクラスで詳細コードを確認してください。
DB_ERROR_DAB_SYSTEMCALL_ERROR
システムコールでエラーが発生しました。DBSQLCAクラスで詳細コードを確認してください。
DB_ERROR_DAB_ILLEGAL_VALUE
指定した引数が不正です。DBSQLCAクラスで詳細コードを確認してください。
DB_ERROR_CANNOT_USE_ABSTRACTNAME
DBDriverオブジェクトにデータベース種別名が指定されていないので,データベース名を指定できません。
DB_ERROR_NOT_FOUND_DBDEFINITION
データベース種別名,又はデータベース名が見つかりません。
DB_ERROR_CONNECTDBDEFINITIONNAME_LENGTH_IS_ZERO
データベース名の長さが0です。
DB_ERROR_TIMEOUT
タイムアウトが発生したため制御を戻します。
DB_ERROR_NOT_EXECUTE_ASYNC
XAインターフェース使用時に非同期処理は指定できません。