我想,可能是在用where语句时,系统建立了什么临时对象,
再关闭时,没有删除!
再关闭时,没有删除!
解决方案 »
- 30个线程,300个任务要执行,同时每个线程只能执行一个任务,怎么做?
- 一个exe的COM组件(仅提供了这个),由此获取的idl文件生成不了.h与i_.c?
- CStdioFile如何统计最后一个空行
- 请问:PostMessage每线程最大使用次数是1万次。不理解。
- 求助:vc/mfc中如何实现“图形统计”的功能?HELP……
- 怎么抓取网页的COOKIE、SESSION
- 关于剪帖板的问题,请帮忙,谢谢!!
- 怎样在vc中截取电脑摄像头录取的图像?谢了!
- MFC对话框中多个静态文本的ID都相同,怎么动态修改显示的文本
- 如何使用CFile读取文件的一行,以\n结尾
- 苦闷苦闷!!!
- 有谁知道installshield的各个版本(proferssional/express/stand/for VC...)区别?
就知道什么原因了,赶快给分吧
if (m_bh == "")
m_name = "";
else
{
strCmd.Format (_T("SELECT * FROM ygzl WHERE bh = '%s'"), m_bh);
//strCmd.Format (_T("SELECT * FROM ygzl"));
m_gz_ygzl.Open (m_app->m_session , strCmd);
if (m_gz_ygzl.MoveFirst () != S_OK)
{
AfxMessageBox ("不存在该编号员工!");
m_name = "";
}
else
{
m_name = m_gz_ygzl.m_name ;
}
m_gz_ygzl.Close ();
}
UpdateData (FALSE);如果把sql语句换成,注释掉的那行,关闭应用程序得时候就不会出错!
问题是这段代码在执行得时候,是没有一点问题得!运行很正常!我现在正在卸载系统,重新安装vc,看看,是否系统出了故障!
试试
直接用 % 是不对的,所以我让你把 % 去掉就看出问题在哪了,解决的办法在前
一个帖子里。
你可以把下面两段程序分别运行一下
1
char * aaa="test set text %%s";
printf(aaa);
2
char * aaa="test set text %s";
printf(aaa); 你看看是什么结果?本事不大脾气不小!
你试试这样行不行:
strCmd.Format (_T("SELECT * FROM ygzl WHERE bh = "+m_bh+");
我想应该在Open处加个判断,是不是有利于代码保护呢???
if( m_gz_ygzl.Open (m_app->m_session , strCmd) ){
//代开后的操作代码。。
m_gz_ygzl.Close();
}
一点拙见,见笑
^_^
(br='%s')改为'br=='%s'
重新设计对话框和各种控件的映射strCmd.Format (_T("SELECT * FROM ygzl WHERE bh = '%s'"), m_bh);
是正确的
一定有问题的话,是不是看看m_bh的值
真的不知道系统里面出了什么毛病,难道是bug!
strCmd.Format (_T("SELECT * FROM ygzl WHERE bh = '这里写常量'"));
会不会出错?出错就没办法了。
反正不管访问哪个表,只要加上where就一定错!
借宝地问一下,帮帮忙啊!用户急着要呢!:(
http://www.csdn.net/expert/topic/354/354313.shtm
then query="select * from ygzl where bh=''xxxx'"
else
check database state code == 0200(success!!!)
在其它程序中不会产生任何错误表现。
而且该段代码在错误程序的执行过程中也完全全正确,只要程序没有关闭。哪怕是这个对话框关闭又再打开使用都没有问题。但只要该段代码执行过一次,而且是带where的那种,就一定会在整个程序关闭的时候报错,如果没有where语句,什么事也不会发生!