アプリケーションに ODBC 接続を確立し、データベース操作を行います。
前提条件
この作業を実行するための前提条件はありません。
内容と備考
完全なサンプルは、%SQLANYSAMP16%\SQLAnywhere\ODBCConnect\odbcconnect.cpp にあります。
ODBC 環境を割り付けます。
例:
SQLRETURN rc; SQLHENV env; rc = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env ); |
ODBC のバージョンを宣言します。
アプリケーションが ODBC バージョン 3 に準拠するように宣言すると、SQLSTATE 値と他のバージョン依存の機能が適切な動作に設定されます。次に例を示します。
rc = SQLSetEnvAttr( env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0 ); |
ODBC 接続項目を割り付けます。
例:
rc = SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc ); |
接続前に必要な接続属性を設定します。
接続属性には、接続を確立する前または後に必ず設定するものと、確立前に設定しても後に設定してもかまわないものがあります。SQL_AUTOCOMMIT 属性は、接続の確立前にでも後にでも設定できる属性です。
rc = SQLSetConnectAttr( dbc, SQL_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0 ); |
デフォルトでは、ODBC はオートコミットモードで動作します。このモードは、SQL_AUTOCOMMIT を false に設定してオフにすることができます。
必要な場合は、データソースまたは接続文字列をアセンブルします。
アプリケーションによっては、データソースや接続文字列をハードコードしたり、柔軟性を高めるために外部に格納したりできます。
ODBC 接続関数を呼び出します。
例:
if (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO) { printf( "dbc allocated\n" ); rc = SQLConnect( dbc, (SQLCHAR *) "SQL Anywhere 16 Demo", SQL_NTS, (SQLCHAR *) "DBA", SQL_NTS, (SQLCHAR *) "sql", SQL_NTS ); if (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO) { // Successfully connected. |
ODBC に渡される各文字列には、固有の長さがあります。長さがわからない場合は、終端を NULL 文字 (\0) でマークした「NULL で終了された文字列」であることを示す SQL_NTS を渡すことができます。
接続属性を設定する方法
接続属性を取得する方法
ODBC アプリケーションでのスレッドと接続
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |