VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

openGauss ODBC主要接口

Vastbase G100 ODBC 驱动由具有建立和管理与Vastbase G100 数据库连接、执行SQL 语句和对结果集进行储存管理的若干功能类组成。

  • SQLSetEnvAttr

    设置控制环境各方面的属性,环境属性如下所示:

SQL_ATTR_ODBC_VERSION 指定ODBC版本。
SQL_CONNECTION_POOLING 连接池属性。
SQL_OUTPUT_NTS 指明驱动器返回字符串的形式。

示例:

SQLSetEnvAttr(V_OD_Env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
  • SQLAllocHandle

    分配环境、连接、语句或描述符的句柄,它替代了ODBC 2.x函数SQLAllocEnv、SQLAllocConnect及SQLAllocStmt。

    示例:

    V_OD_erg = SQLAllocHandle(SQL_HANDLE_DBC, V_OD_Env, &V_OD_hdbc);
    
  • SQLSetConnectAttr

    设置控制连接各方面的属性,下面列出一些连接属性和取值,详细信息请参考https://msdn.microsoft.com/en-us/library/windows/desktop/ms714177(v=vs.85).aspx

连接属性 取值
SQL_ATTR_ACCESS_MODE 用于表明是否需要连接来支持会导致更新的SQL语句。
SQL_MODE_READ_ONLY 
SQL_MODE_READ_WRITE
SQL_ATTR_ASYNC_ENABLE 指定连接相关的语句中的函数调用是否异步执行。
SQL_ASYNC_ENABLE_OFF 
SQL_ASYNC_ENABLE_ON 
SQL_ATTR_AUTOCOMMIT 自动提交,还是手动提交。
SQL_AUTOCOMMIT_OFF 
SQL_AUTOCOMMIT_ON 
SQL_ATTR_CONNECTION_DEAD 连接的状态。
SQL_CD_TRUE(连接已丢失)
SQL_CD_FALSE(连接仍活跃)
SQL_ATTR_LOGIN_TIMEOUT 保存秒数的SQLUINTEGER 类型变量,传入空指针则关闭该功能。
SQL_ATTR_ODBC_CURSORS 用于驱动管理器使用ODBC游标。
SQL_CUR_USE_IF_NEEDED 
SQL_CUR_USE_ODBC 
SQL_CUR_USE_DRIVER 

示例:

SQLSetConnectAttr(V_OD_hdbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, 0);
  • SQLConnect

    在驱动程序和数据源之间建立连接。连接上数据源之后,可以通过连接句柄访问到所有有关连接数据源的信息,包括程序运行状态、事务处理状态和错误信息。

    示例

    V_OD_erg = SQLConnect(V_OD_hdbc, (SQLCHAR*) "Test", SQL_NTS,
                           (SQLCHAR*) "yuntu", SQL_NTS,  (SQLCHAR*) "Ttest@123", SQL_NTS);
      if ((V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO))
      {           
          printf("Error SQLConnect %d\n",V_OD_erg);
          SQLFreeHandle(SQL_HANDLE_ENV, V_OD_Env);
          exit(0);        
    }  
    
  • SQLSetStmtAttr

    设置相关语句的属性。

    示例:

    SQLSetStmtAttr(V_OD_hstmt,SQL_ATTR_QUERY_TIMEOUT,(SQLPOINTER *)3,0);
    
  • SQLExecDirect

    使用参数的当前值,执行一条准备好的语句。对于一次只执行一条SQL语句,SQLExecDirect是最快的执行方式。

    示例:

    SQLExecDirect(V_OD_hstmt,"drop table IF EXISTS test_stu",SQL_NTS);
    
  • SQLPrepare

    准备一个将要进行的SQL语句。

    示例:

    SQLPrepare(V_OD_hstmt,"insert into test_stu values(?)",SQL_NTS);
    
  • SQLBindParameter

    将一条SQL语句中的一个参数标志和一个缓冲区绑定起来。

    示例:

    SQLBindParameter(V_OD_hstmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,
                       &value,0,NULL);
    
  • SQLExecute

    如果语句中存在参数标记的话,SQLExecute函数使用参数标记参数的当前值,执行一条准备好的SQL语句。

    示例:

    SQLExecute(V_OD_hstmt);
    
  • SQLColAttribute

    返回结果集中一列的描述符信息。

    示例:

      SQLColAttribute(V_OD_hstmt,1,SQL_DESC_NAME,desc_name,100,NULL,NULL);                 
    printf("SQLColAtrribute %s\n",desc_name);
    
  • SQLFetch

    从结果集中取下一个行集的数据,并返回所有被绑定列的数据。

    示例:

    ret = SQLFetch(V_OD_hstmt);
    
  • SQLGetData

    SQLGetData返回结果集中某一列的数据。可以多次调用它来部分地检索不定长度的数据。

    示例:

    ret = SQLGetData(V_OD_hstmt, 1, SQL_C_CHAR, buf, sizeof(buf), &ind);
    
  • SQLFreeHandle

    释放与指定环境、连接、语句或描述符相关联的资源,它替代了ODBC 2.x函数SQLFreeEnv、SQLFreeConnect及SQLFreeStmt。

    示例:

    SQLFreeHandle(SQL_HANDLE_STMT,V_OD_hstmt);
    
  • SQLDisconnect

    关闭一个与特定连接句柄相关的连接。

    示例:

    SQLDisconnect(V_OD_hdbc);