CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

调用数据库查询功能后调用打印功能,再调用数据库查询功能时报错,请大侠帮忙

楼主danruowuchen()2006-01-07 21:27:54 在 VC/MFC / 基础类 提问

我做的是个基于对话框的程序,一个按钮调用查询数据库函数,是正确的,结果显示再CListCtrl控件里;另外一个按钮完成打印CListCtrl控件里面内容功能,也是正确的。当单击“查询”按钮后(结果可以正确显示在CListCtrl控件里),单击“打印”按钮(此时可以把CListCtrl控件里的内容按照程序要求打印预览)。但是当再次单击“查询”按钮时,系统报错(就是那种出现严重错误的情况,出现的一个对话框问要不要向MS发送错误原因)。  
  我打印最后也调用了EndDC()和DeleteDC()函数的啊  
  哪位大侠有这方面的经验,请帮帮我 问题点数:100、回复次数:9Top

1 楼handsomerun(毛毛)回复于 2006-01-07 21:50:48 得分 20

你连续点击两次“查询”按钮  
  会出错吗??  
   
  另外你跟踪一下查询按钮  
  看执行到哪出问题Top

2 楼danruowuchen()回复于 2006-01-08 12:38:03 得分 0

谢谢   handsomerun(毛毛)   的建议   我先试试Top

3 楼danruowuchen()回复于 2006-01-08 13:20:26 得分 0

连续几次查询都是正确的  
  但查询跟打印交叉调用就报错  
  显示的报错对话框说:Run   Time   Error  
  调试时,我单击“查询”按钮后(结果可以正确显示在CListCtrl控件里),单击“打印”按钮(此时可以把CListCtrl控件里的内容按照程序要求打印预览)。但是当再次单击“查询”按钮跟踪到m_pConnection->Open(……)时报错。Top

4 楼lixiaosan(小三)回复于 2006-01-08 13:24:13 得分 20

查询后关闭数据库没?  
   
  如果不行,你贴代码Top

5 楼handsomerun(毛毛)回复于 2006-01-08 13:28:55 得分 20

“单击“打印”按钮(此时可以把CListCtrl控件里的内容按照程序要求打印预览)。”  
   
  在执行打印操作的时候,应该没有对数据库进行操作的任何代码吧  
  打印只是把listctrl中的记录打印出来,还是什么的Top

6 楼danruowuchen()回复于 2006-01-08 14:23:07 得分 0

查询后关闭了数据库  
  用的是m_pRecordset->Close();最开始只有这一句,程序报错Run   Time   Error  
              m_pConnection->Close();又在程序最后加上这一句,还是报错Run   Time   Error  
              m_pRecordset.Release();  
              m_pConnection.Release();又加了这两句,还是报错Run   Time   Error  
  如果连续单击“查询”按钮,每次都能正确显示结果到CListCtrl控件里。  
  To   handsomerun(毛毛)   :打印操作里面没有涉及关于数据库的操作。  
  调试时,我单击“查询”按钮后(结果可以正确显示在CListCtrl控件里),单击“打印”按钮(此时可以把CListCtrl控件里的内容按照程序要求打印预览)。但是当再次单击“查询”按钮跟踪到m_pConnection->Open(……)时报错。  
  我想既然多次连续单击“查询”按钮,每次都能正确显示结果到CListCtrl控件里,那么m_pConnection->Open(……)应该不会有错。任何一次执行打印后,就在m_pConnection->Open(……)处报错,因此我想问题应该在打印的程序段里。顺便说一下,我在打印时调用了CListCtrl的变量m_List_Statistic,打印需要的数据来源通过m_List_Statistic传进来。查询时,执行查询后就把结果传给m_List_Statistic指向的CListCtrl控件。  
  Top

7 楼handsomerun(毛毛)回复于 2006-01-08 14:44:36 得分 40

m_pRecordset->Close();就可以了  
  别的connect什么的,不用关闭的  
   
  ??  
  你在查询处是用  
  m_pConnection->Open(……)??  
   
  open的是connect??  
  不是recordset??Top

8 楼danruowuchen()回复于 2006-01-08 15:52:58 得分 0

我用m_pConnection->Open(……)来连接数据库  
  查询用的时m_pRecordset->Open(……);  
  我想问题有可能出在那个CListCtrl类型的变量m_List_Statistic上。我调用的打印函数的声明是这样的:void   PrintListCtrl(CListCtrl   &list),在打印函数void   OnBtnPrint()   里面就一句:{PrintListCtrl(m_List_DetailStatistic);}。  
  所以,我编了个函数用来返回一个跟m_List_Statistic内容一样的CListCtrl类型变量,准备在打印函数里面调这个新的变量而不调用m_List_Statistic。可惜函数编得不好。  
  谢谢你呀,handsomerun(毛毛)    
  Top

9 楼danruowuchen()回复于 2006-01-19 13:49:13 得分 0

今天偶然之间,找到问题出在哪里了。原来我打印预览的文档默认在“我的文档”目录下,这样预览之后再点击“查询”按钮,程序就在“我的文档”目录下连接数据库,(注意:原来在工程名目录下连接数据库,我的数据库文件是放在工程名目录下的),当然是连接失败的。我把数据库copy到“我的文档”目录下,问题解决了!希望大家能分享自己的编程经验。  
  在此,多谢handsomerun(毛毛)   ,lixiaosan(小三)   的支持。Top

相关问题

  • 数据库调用
  • 如何用vb调用access数据库?还有添加、查询数据?谢谢
  • VC中使用ADO如何调用ACCESS数据库中“查询”对象?
  • 在delphi中用ado能调用access数据库中的查询吗?能的话如何调用?!
  • 调用数据库问题
  • 调用数据库问题
  • asp调用数据库(acess2000)
  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~

关键词

  • 查询
  • 打印
  • 数据库
  • 控件
  • 函数
  • 预览
  • 文档
  • 执行
  • 内容
  • 连接

得分解答快速导航

  • 帖主:danruowuchen
  • handsomerun
  • lixiaosan
  • handsomerun
  • handsomerun

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo