现一项目使用ODBC API连接数据库
每次要查询得到结果集时都是使用
SQLRETURN retcode = SQLAllocHandle(SQL_HANDLE_STMT,m_hdbc,&(m_sSearchInfo.hstmt));
使用完之后再使用
if (m_sSearchInfo.hstmt)
{
SQLCloseCursor(m_sSearchInfo.hstmt);
SQLFreeHandle(SQL_HANDLE_STMT,m_sSearchInfo.hstmt);
}
关闭这样会不会使效率低下。另有一个想法是:为每一次查询相同的查询使用特定的一个结果集句柄。使用第二种方案能提高效率吗?有谁遇到过这样的问题,请指点~
每次要查询得到结果集时都是使用
SQLRETURN retcode = SQLAllocHandle(SQL_HANDLE_STMT,m_hdbc,&(m_sSearchInfo.hstmt));
使用完之后再使用
if (m_sSearchInfo.hstmt)
{
SQLCloseCursor(m_sSearchInfo.hstmt);
SQLFreeHandle(SQL_HANDLE_STMT,m_sSearchInfo.hstmt);
}
关闭这样会不会使效率低下。另有一个想法是:为每一次查询相同的查询使用特定的一个结果集句柄。使用第二种方案能提高效率吗?有谁遇到过这样的问题,请指点~
解决方案 »
- MFC Mid函数的用法
- VC我用多文档,视图下面分割一个窗口,我想鼠标移动到分割位置时,显示双箭头,怎么实现(现在是什么都显示不了)
- 删除特定字符串··
- 一个c++ runtime library的问题
- CreateThread传递参数的问题
- 我想请问一下,出现了这个错误是怎么回事unexpected end of file while looking for precompiled header directive
- 这到底是怎么了?真要命啊1
- 如何超时处理?
- 谁能给我详细解说一下什么是句柄???
- 如何查看.dll文件的函数及参数信息?
- 如何设置浮动工具栏的长度?
- 我定制了一个对话框,然后添加List Control控件,用来显示数据库表中的数据。
不过结果集肯定要关闭
如果要提高效率可以使用存储过程。
你让我想起ADO查询数据库时如果上次记录集不关闭的话是无法得到当前记录集的,我去试下ODBCAPI是不是一样,回来再报告 ^_^
结果证明和ADO一样,ODBC API的记录集句柄不关闭的话,无法查询.
第二种方案是不行了.
谢谢各位.
结贴散分!