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

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

 

接続の確立

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

 ♦ ODBC 接続の確立
  1. ODBC 環境を割り付けます。

    次に例を示します。

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

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

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

    次に例を示します。

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

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

    retcode = SQLSetConnectAttr( dbc,
       SQL_AUTOCOMMIT, 
       (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0 );
  5. 必要な場合は、データソースまたは接続文字列をアセンブルします。

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

  6. ODBC 接続関数を呼び出します。

    次に例を示します。



    if (retcode == SQL_SUCCESS 
        || retcode == SQL_SUCCESS_WITH_INFO) {
       printf( "dbc allocated\n" );
       retcode = SQLConnect( dbc,
          (SQLCHAR*) "SQL Anywhere 12 Demo", SQL_NTS,
          (SQLCHAR* ) "DBA", SQL_NTS,
          (SQLCHAR*) "sql", SQL_NTS );
       if (retcode == SQL_SUCCESS
             || retcode == SQL_SUCCESS_WITH_INFO){
       // successfully connected.

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

 注意
 参照

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