Connectメソッド

機能

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

また,接続に成功すると,トランザクションを開始します。

形式

void Connect (LPCTSTR lpctUID,
             LPCTSTR lpctPWD,
             LPCTSTR lpctDBN,
             LPCTSTR lpctOPT = NULL,
             LPCTSTR lpctAbstractName,
             UINT16 swWait = LOCK_OPT_NOWAIT,
             UINT16 swTimeout = 0,
             UINT16 swSync = STMT_SYNC)

引数

lpctUID

接続先データベースのユーザIDを指定します。

NULLを指定した場合,接続先データベース定義ファイルに指定されたユーザIDを利用します。

SQL/K,又はXDM/SDの場合,Database Connection Serverの認証属性の設定によっては,不正な値を設定してもデータベースに接続できるので注意してください。認証属性の詳細については,マニュアル「Database Connection Server」を参照してください。

TPBrokerのOTSインタフェース,又はOpenTP1連携を使ったトランザクション制御の場合は省略できません。

lpctPWD

接続先データベースのパスワードを指定します。

NULLを指定した場合,接続先データベース定義ファイルに指定されたパスワードを利用します。SQL Anywhere,Adaptive Server Anywhereの場合は,ODBCのデータソース中でパスワードを指定している場合は,そのパスワードを利用できます。

SQL/K,又はXDM/SDの場合,Database Connection Serverの認証属性の設定によっては,不正な値を設定してもデータベースに接続できるので注意してください。認証属性の詳細については,マニュアル「Database Connection Server」を参照してください。

TPBrokerのOTSインタフェース,又はOpenTP1連携を使ったトランザクション制御の場合は省略できません。

lpctDBN

lpctOPT

lpctAbstractName

swWait

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

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

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

swTimeout

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

swSync

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

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

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

STMT_ASYNCを指定した場合,実行されるSQL文は,子スレッドで処理されます。

戻り値

なし

機能詳細

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

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

接続先データベース定義ファイルの定義内容を使用しないで接続する場合の補足事項

データベースとの接続には,接続先データベース定義ファイルの使用をお勧めしますが,もし接続先データベース定義ファイル中の定義内容を使用しない場合には,引数lpctAbstractName で NULL を指定し,使用するDBMSごとに次の引数の指定が必要です。

ただし,Database Connection Server 経由で接続するデータベース,SQL Server, 及び Adaptive Server Anywhereを使用する場合は,lpctAbstractNameにNULLを指定できません。lpctAbstractNameにNULLを指定しなくても,次の引数に値を指定すれば,接続先データベース定義ファイルの定義内容ではなく,引数に指定した内容で接続します。

HiRDBクライアント環境定義の環境変数指定

HiRDBの場合,HiRDBクライアント環境定義の環境変数をlpctOPTに指定できます。詳細は,「5.4 DBDriver クラスの詳細」のConnectメソッドを参照してください。

発生する例外

DBSQLCA(RetCode)

DB_ERROR_NOT_ENOUGH_MEMORY
メモリ容量が不足しています。
DB_ERROR_CONNECTSTRING_INVALID
接続文字列の形式が間違っています。
DB_ERROR_DRIVER_ERROR
DBMSでエラーが発生しました。
DB_ERROR_OCCURRED_IN_CONSTRUCTOR
コンストラクタでエラーが発生しました。エラーの内容はGetErrorStatusメソッドでDBSQLCAオブジェクトを取得して参照してください。
DB_ERROR_CANNOT_USE_ABSTRACTNAME
DBRDatabaseオブジェクトにデータベース種別名が指定されていないので,データベース名を指定できません。
DB_ERROR_NOT_FOUND_DBDEFINITION
データベース種別名,又はデータベース名が見つかりません。
DB_ERROR_CONNECTDBDEFINITIONNAME_LENGTH_IS_ZERO
データベース名の長さが0です。
DB_ERROR_TIMEOUT
タイムアウトが発生したため制御を戻します。
DB_ERROR_NOT_EXECUTE_ASYNC
XAインターフェース使用時に非同期処理は指定できません。