ADO连数据操作中,出现ADO异常的情况下如何关闭记录集(m_recordset)了?
使用ADO的连接方式.
ADO类做为单例的,在初始化就已经建立好连接(m_connection)和记录集(m_recordset)了.
在不同的数据库操作的方法中直接使用连接和记录集.
例如在插入记录时:
//打开记录集:
try{
hr = m_recordset->Open(query, source, adOpenDynamic,
adLockOptimistic, adCmdText);
}
//执行插入
try{
m_recordset->AddNew();
...........
m_recordset->Update();
fields->Release();
field->Release();
m_recordset->Close();
return true;
}
catch(_com_error &e2){
CString str=(char*)e2.ErrorMessage();
str += e2.Description();
::MessageBox(NULL,str+"\r\n插入数据出错。","提示",
MB_OK | MB_ICONWARNING);
m_recordset->Close();///?????这里有问题了?
return false;
}
问题出在在catch{}语句,如果插入数据不成功,跳到catch块后,这个地方不能执行:m_recordset->Close(),一执行就导致程序死掉了.
但如果这里不关闭记录集就直接退出的话,程序是可以接着运行,但这个m_recordset没有Close掉,下次进到这个方法中时或者下次别的方法中要用到m_recordset时,一打开记录集就出错,因为这个记录集是没有关闭的
//打开记录集:
try{
hr = m_recordset->Open(query, source, adOpenDynamic,
adLockOptimistic, adCmdText);
}
//这里出错.
这样一来,就导致我的程序一出现ADO错误就会死掉.因为如何处理这个问题了?
ADO类做为单例的,在初始化就已经建立好连接(m_connection)和记录集(m_recordset)了.
在不同的数据库操作的方法中直接使用连接和记录集.
例如在插入记录时:
//打开记录集:
try{
hr = m_recordset->Open(query, source, adOpenDynamic,
adLockOptimistic, adCmdText);
}
//执行插入
try{
m_recordset->AddNew();
...........
m_recordset->Update();
fields->Release();
field->Release();
m_recordset->Close();
return true;
}
catch(_com_error &e2){
CString str=(char*)e2.ErrorMessage();
str += e2.Description();
::MessageBox(NULL,str+"\r\n插入数据出错。","提示",
MB_OK | MB_ICONWARNING);
m_recordset->Close();///?????这里有问题了?
return false;
}
问题出在在catch{}语句,如果插入数据不成功,跳到catch块后,这个地方不能执行:m_recordset->Close(),一执行就导致程序死掉了.
但如果这里不关闭记录集就直接退出的话,程序是可以接着运行,但这个m_recordset没有Close掉,下次进到这个方法中时或者下次别的方法中要用到m_recordset时,一打开记录集就出错,因为这个记录集是没有关闭的
//打开记录集:
try{
hr = m_recordset->Open(query, source, adOpenDynamic,
adLockOptimistic, adCmdText);
}
//这里出错.
这样一来,就导致我的程序一出现ADO错误就会死掉.因为如何处理这个问题了?
...全文
相关推荐
基于springboot亿时网上书店系统源码数据库文档.zip
基于springboot亿时网上书店系统源码数据库文档.zip
基于springboot网上书店源码数据库文档.zip
基于springboot网上书店源码数据库文档.zip
springboot022-网上书店.rar
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行!
基于springboot的网上书店源码(java毕业设计完整源码).zip
功能说明: 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上。。。
【java毕业设计】网上书店源码(springboot+vue+mysql+说明文档).zip
环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上


数据库
