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 的字符串都有相应的长度。如果长度未知,则可传递 SQL_NTS,表示它是一个结尾标记为空值字符 (\0) 的以空值终止的字符串

结果

应用程序在构建和运行时会建立 ODBC 连接。

 另请参见

如何设置连接属性
如何获取连接属性
ODBC 应用程序中的线程和连接