ice2000feng 发表于 2004-9-24 12:14

为什么还会抛出异常啊?

<P> try
                {
                        
                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);
                        
                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();
                        MessageBox(NULL,"你graer!","登陆数据库错误",MB_OK);
                        DataMod-&gt;EduManagQuery-&gt;Active=true;
                }
                catch(EDBEngineError &amp;E)
                {
                        MessageBox(this,"不能查询数据库","错误",MB_OK);
                        ModalResult=mrAbort;
                        //DataMod-&gt;EduManagQuery-&gt;Active=false;
                        return;
                }
                MessageBox(NULL,"你不是!","登陆数据库错误",MB_OK);
                if(DataMod-&gt;EduManagQuery-&gt;RecordCount==0)
                {
                        if(m_nTimes==3)
                        {
                                MessageBox(NULL,"你不是合法用户!","登陆数据库错误",MB_OK);
                                ModalResult=mrAbort;
                                Close();
                        }
                        else
                        {
                                MessageBox(NULL,"用户名不存在,请从新输入","登陆数据库错误",MB_OK);
                                UserEdit-&gt;Text="";
                                PasswordEdit-&gt;Text="";
                                UserEdit-&gt;SetFocus();
                                ModalResult=mrNone;
                        }
                }</P>

<P>try
                {</P>
<P>                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);
                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();
                        DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
<P>                }
                catch(EDBEngineError &amp;E)
                {
                        MessageBox(this,"不能查询数据库","错误",MB_OK);
                        ModalResult=mrAbort;
                        return;</P>
<P></P>
<P>                }
(在一个表中查询用户名),我执行的是无论表中有没有的用户名,都抛出异常,而且程序不会执行红色的代码,为什么啊
</P>

ice2000feng 发表于 2004-9-25 12:26

我把代码传上来

ilikenba 发表于 2004-9-24 17:23

<P>DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);</P><P>在这句前面应该加上DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Clear();</P>

ilikenba 发表于 2004-9-24 17:29

<P>还有你这两句代码不能同时用!</P>
<P>DataMod-&gt;EduManagQuery-&gt;ExecSQL();
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
<P>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>
<P>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P>
<P>DataMod-&gt;EduManagQuery-&gt;RecordCount;这句代码需要在数据集打开后才能执行,所以你这个时候就用DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
<P>至于你的异常处理代码无法执行可能是你的catch里面设置的异常不对!一般的话可以用</P>
<P>catch(...)</P>
<P>这样可以捕捉所有的异常!</P>
[此贴子已经被作者于2004-9-24 17:33:31编辑过]

ice2000feng 发表于 2004-9-24 23:13

<DIV class=quote><B>
<P>还有你这两句代码不能同时用!</P>
<P>DataMod-&gt;EduManagQuery-&gt;ExecSQL();
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
<P>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>
<P>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P></B></DIV>
<P>我是初学者,不过我感觉你说的不对啊,ExecSQL()是先执行啊,然后才执行-&gt;Active=true;</P>
<P>而且我是看着书上做的,你下面说的catch(...){},我试了,它还是抛出一样的异常,</P>
<P>它说:“Invalid use of keyword,Token:="ff(这是我要查询的用户名)",line Number:1'  ”,</P>

ilikenba 发表于 2004-9-25 11:18

<P>我说的没错呀!尽信书不如无书呀!</P><P>从你的异常来看好像不是上面的代码报的错!你可以看看的输入代码有没有问题呀!</P><P>DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Clear();这个语句加上了吗?</P>
页: [1]
查看完整版本: 为什么还会抛出异常啊?