Connection句柄的创建和释放
SQLHANDLE hEnv = <已创建Environment句柄>;
SQLHANDLE hConn; // 连接对象
SQLRETURN ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hConn);
SQLFreeHandle(SQL_HANDLE_DBC, hConn);
Connection属性API:
SQLRETURN SQLSetConnectAttr(
SQLHDBC hConn, int attrib, SQLPOINTER ValuePtr, SQLINTEGER StringLengh);
SQLRETURN SQLGetConnectAttr(
SQLHDBC hConn, int attrib, SQLPOINTER ValuePtr,
SQLINTEGER BufferLength, SQLINTEGER* pStringLengh);
Connection属性列表:
SQL_ATTR_ACCESS_MODE
ODBC-1.0, SQLUINTEGER, 告知驱动当前连接的读写模式。取值:
SQL_MODE_READ_ONLY 表示驱动无需支持用于数据修改更新的SQL语句。
SQL_MODE_READ_WRITE 支持读写语句,默认值。
SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE
ODBC 3.8,SQLUINTEGER,告知该链接是否支持异步执行,取值:
SQL_ASYNC_DBC_ENABLE_ON 允许异步执行。
SQL_ASYNC_DBC_ENABLE_OFF 不允许异步执行(默认值)。
SQL_ATTR_ASYNC_ENABLE
ODBC 3.0,SQLULEN, 函数调用是否异步执行。取值:
SQL_ASYNC_ENABLE_OFF 不允许异步(默认)
SQL_ASYNC_ENABLE_ON 允许异步
SQL_ATTR_AUTOCOMMIT
ODBC 1.0,SQLUINTEGER,自动提交或手动提交开关。对于批处理,以批为单位自动提交,
还是以语句为单位自动提交,由驱动程序决定。取值:
SQL_AUTOCOMMIT_OFF 必须显式调用SQLEndTrans()指定提交活回滚。
SQL_AUTOCOMMIT_ON 每次执行后自动提交(默认)。
SQL_ATTR_CONNECTION_DEAD
ODBC 3.5,SQLUINTEGER,自读属性,表示连接状态。取值:
SQL_CD_TRUE 连接断开。
SQL_CD_FALSE 连接有效。
SQL_ATTR_CONNECTION_TIMEOUT
ODBC 3.0, SQLUINTEGER,查询请求执行超时时间(秒),0表示没有超时设置。
SQL_ATTR_CURRENT_CATALOG
ODBC 2.0,字符串,表示当前数据源的catalog,对应于USE database命令。
SQL_ATTR_LOGIN_TIMEOUT
ODBC 1.0,SQLUINTEGER,登录过程超时时间(秒)。
SQL_ATTR_ODBC_CURSORS
ODBC 2.0, 驱动管理器使用何种游标,取值:
SQL_CUR_USE_IF_NEEDED 首选SQL_CUR_USE_DRIVER,如驱动不支持,
则改用SQL_CUR_USE_ODBC。
SQL_CUR_USE_ODBC 使用ODBC游标库
SQL_CUR_USE_DRIVER 使用驱动提供的游标滚动功能(默认)
SQL_ATTR_PACKET_SIZE
ODBC 2.0,SQLUINTEGER,网络报文字节数(多数驱动可能不支持修改报文大小)。
SQL_ATTR_TRACE
ODBC 1.0 SQLUINTEGER,是否启用ODBC跟踪功能,取值:
SQL_OPT_TRACE_OFF 关闭
SQL_OPT_RACE_ON 启用
SQL_ATTR_TRACEFILE
ODBC 1.0,STRING,TRACE文件路径。