ODBC学习笔记—SQLSetStmtAttr

本文详细介绍了ODBC API中的SQLSetStmtAttr函数,包括其函数定义、参数解释、返回值及多种用法示例,如设置语句句柄属性、游标滚动、自动IPD等,帮助开发者理解并使用此函数来定制SQL语句的执行行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLGetConnectAttr

函数定义:

SQLRETURN SQLGetConnectAttr(

     SQLHDBC     ConnectionHandle,

     SQLINTEGER     Attribute,

     SQLPOINTER     ValuePtr,

     SQLINTEGER     BufferLength,

     SQLINTEGER *     StringLengthPtr);

参数详解:

GetEnvAttr

返回值:

返回值有四种:SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, or SQL_ERROR.

查看详细错误信息可调用SQLGetDiagRec 函数(之后章节讲解)。

用法:

用法同GetEnvAttr参数同SetConnectAttr

SQLSetStmtAttr

函数定义:

Stmt是用来执行SQL语句的句柄,这个函数是用来设置她的属性的

SQLRETURN SQLSetStmtAttr(

     SQLHSTMT     StatementHandle,

     SQLINTEGER     Attribute,

     SQLPOINTER     ValuePtr,

     SQLINTEGER     StringLength);

 

参数详解:

ConnectionHandle :输入变量

连接的句柄

Attribute :输入变量                        ValuePtr:输入变量

Attribute

ValuePtr contents

SQL_ATTR_APP_PARAM_DESC
(ODBC 3.0)

设置APP参数描述

SQL_ATTR_APP_ROW_DESC
(ODBC 3.0)

设置APP行描述

SQL_ATTR_ASYNC_ENABLE
(ODBC 1.0)

设置异步开关 

SQL_ASYNC_ENABLE_OFF = Off 默认值
SQL_ASYNC_ENABLE_ON = On

SQL_ATTR_CONCURRENCY
(ODBC 2.0)

设置并发属性 

SQL_CONCUR_READ_ONLY = 默认值,指针设为只读,不能进行更新操作

SQL_CONCUR_LOCK = 游标用最低等级的锁,保证行更新得到充分的保障

SQL_CONCUR_ROWVER = 乐观并发模式通过行的属性以及时间戳来决定

SQL_CONCUR_VALUES = 乐观并发模式通过比较取值决定

SQL_ATTR_CURSOR_SCROLLABLE
(ODBC 3.0)

设置游标滚动 

SQL_NONSCROLLABLE = 设置不依赖于statement handle如果调用SQLFetchScroll 取值将会是SQL_FETCH_NEXT,这是默认值

SQL_SCROLLABLE = 依赖于 statement handle当调用 SQLFetchScroll会返回很多可取值,取值参考Scrollable Cursors和 Cursor Characteristics and Cursor Type

SQL_ATTR_CURSOR_SENSITIVITY
(ODBC 3.0)

设置游标敏感度,当当前结果集被其他游标改动是,会返回最近的取值 

SQL_UNSPECIFIED 默认值,当statement句柄被其他游标进行了显著改动时,该游标可能进行变化,也可能不变

SQL_INSENSITIVE 只读游标,当statement句柄被其他指针改变时,该游标并不会反映出改动

SQL_SENSITIVE反映出改动 

详情请见 Cursor Characteristics and Cursor Type.

SQL_ATTR_CURSOR_TYPE
(ODBC 2.0)

游标种类 

SQL_CURSOR_FORWARD_ONLY 默认值,只能向前滚动

SQL_CURSOR_STATIC 结果集数据必须为静态的

SQL_CURSOR_KEYSET_DRIVEN 驱动保留使用行号的键值来移动,键值由 SQL_ATTR_KEYSET_SIZE 属性所决定.

SQL_CURSOR_DYNAMIC 驱动保留并只使用行号的键值来移动 

更多信息参考 Scrollable Cursor TypesCursor Characteristics and Cursor Type.

SQL_ATTR_ENABLE_AUTO_IPD
(ODBC 3.0)

是否展现automatic population of the IPD:

SQL_TRUE  SQL_FALSE

详细请参考 Automatic Population of the IPD.

SQL_ATTR_FETCH_BOOKMARK_PTR
(ODBC 3.0)

一个指向二进制书签的指针

SQL_ATTR_IMP_PARAM_DESC
(ODBC 3.0)

IPD句柄

SQL_ATTR_IMP_ROW_DESC
(ODBC 3.0)

IRD句柄

SQL_ATTR_KEYSET_SIZE
(ODBC 2.0)

keyset-driven游标的数量. 默认值是0, 这是由游标是完全的 keyset-driven游标. 如果大于 0, 那么就是混合的动态游标

SQL_ATTR_MAX_LENGTH
(ODBC 1.0)

指定驱动返回数据数量的最大值

SQL_ATTR_MAX_ROWS
(ODBC 1.0)

指定驱动返回的最大行数

SQL_ATTR_METADATA_ID
(ODBC 3.0)

确定catalog函数如何处理字符串变量.

If SQL_TRUE标识符

If SQL_FALSE非标识符

SQL_ATTR_NOSCAN
(ODBC 1.0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值