Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » ODBC サポート » ODBC 接続関数

 

ODBC 接続の確立

アプリケーションに ODBC 接続を確立し、データベース操作を行います。

前提条件

この作業を実行するための前提条件はありません。

内容と備考

完全なサンプルは、%SQLANYSAMP16%\SQLAnywhere\ODBCConnect\odbcconnect.cpp にあります。

 ♦ タスク
  1. ODBC 環境を割り付けます。

    例:

    SQLRETURN rc;
    SQLHENV   env;
    rc = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env );
  2. ODBC のバージョンを宣言します。

    アプリケーションが ODBC バージョン 3 に準拠するように宣言すると、SQLSTATE 値と他のバージョン依存の機能が適切な動作に設定されます。次に例を示します。

    rc = SQLSetEnvAttr( env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0 );
  3. ODBC 接続項目を割り付けます。

    例:

    rc = SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc );
  4. 接続前に必要な接続属性を設定します。

    接続属性には、接続を確立する前または後に必ず設定するものと、確立前に設定しても後に設定してもかまわないものがあります。SQL_AUTOCOMMIT 属性は、接続の確立前にでも後にでも設定できる属性です。

    rc = SQLSetConnectAttr( dbc, SQL_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0 );

    デフォルトでは、ODBC はオートコミットモードで動作します。このモードは、SQL_AUTOCOMMIT を false に設定してオフにすることができます。

  5. 必要な場合は、データソースまたは接続文字列をアセンブルします。

    アプリケーションによっては、データソースや接続文字列をハードコードしたり、柔軟性を高めるために外部に格納したりできます。

  6. 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 接続が確立されます。

 参照

接続属性を設定する方法
接続属性を取得する方法
ODBC アプリケーションでのスレッドと接続