VastbaseG100

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

Menu

Vsatbase 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);