调用数据库查询功能后调用打印功能,再调用数据库查询功能时报错,请大侠帮忙
我做的是个基于对话框的程序,一个按钮调用查询数据库函数,是正确的,结果显示再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




