SQLAllocStmt与SQLFreeStmt
1、申请语句句柄
SQLAllocStmt函数为应用程序分配语句句柄,其格式为:RETCODE SQLAllocStmt(HDBC hdbc, HSTMT FAR * phstmt)
其中,
hdbc为连接句柄。每个语句句柄总是与一个连接句柄相关联,所以在申请语句句柄时,要提供一个有效的连接句柄,否则,SQLAllocStmt函数将返回错误码:SQL_INVALID_HANDLE。
Phstmt为输出参数,它是一个指向语句句柄变量的指针,当SQLAllocStmt函数执行成功时,它返回SQL_SUCCESS,并将为应用程序分配的语句句柄存储到指定的语句句柄变量中,否则返回SQL_ERROR。
2、释放语句句柄
在使用语句句柄处理完数据库操作后,应用程序应调用SQLFreeStmt函数关闭语句句柄的游标、释放为结果集合所分配的缓冲区、释放语句句柄,从而释放它占用的系统资源(重要!)。SQLFreeStmt函数的格式为:RETCODE SQLFreeStmt(HSTMT hstmt, UWORD fOption)
其中,hstmt为待释放的语句句柄,fOption参数控制SQLFreeStmt函数的动作。因为SQLFreeStmt函数不仅仅用来释放语句句柄,它还有其它多种功能,如能够关闭游标,释放列和参数缓冲区等,SQLFreeStmt函数的所有这些功能由fOption参数的取值决定。
FOption参数取值如下:
.SQL_CLOSE:关闭与hstmt句柄相关联的游标,废除所有正在处理的结果。关闭游标后,再次执行SELECT语句可以重新打开游标;
.SQL_DROP:关闭所有与hstmt相关联的游标,废除正在处理的结果,结束一切对hstmt句柄的访问,并释放hstmt 句柄;
.SQL_UNBIND:解除SQLBindCol函数为hstmt结果集合所关联的所有列缓冲区;
.SQL_RESET_PARAS:释放SQLBinParameter函数为hstmt句柄所关联的参数缓区。