TimesTenでは、xa_open()でオープンされるXA接続に関連付けられているODBC接続ハンドルを取得する関数が提供されています。
この関数は、xa_open()でオープンされる接続に関連付けられているODBC接続ハンドルを取得するために使用されます。
#include <tt_xa.h>
int tt_xa_context(int *rmid, SQLHENV *henv, SQLHDBC *hdbc);
0(成功)
1(rmidが見つかりません)
-1(無効なパラメータです)
rmidをNULLにしてこの関数を使用すると、 ユーザー作成のコードの範囲外(rmidが未知)で接続がオープンされているアプリケーション環境でコンテキストを確立します。
この例では、Tuxedoは、データ・ストアへの接続をオープンしてトランザクションを開始するためにxa_open() およびxa_start()をすでに使用しました。tt_xa_context()関数を使用して、xa_open()で割り当てられるSQLHENVおよび SQLHDBCハンドルを指定します。
do_insert()
{
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
/* retrieve the handles for the current connection */
tt_xa_context(NULL, &henv, &hdbc);
/* now we can do our ODBC programming as usual */
SQLAllocStmt(hdbc, &hstmt);
SQLExecDirect(hstmt, "insert into t1 values (1)", SQL_NTS);
SQLFreeStmt(hstmt, SQL_DROP);
}