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句柄所关联的参数缓区。 图6-19 ODBC各种句柄的申请和释放流程图 |