数学建模社区-数学中国

标题: 为什么还会抛出异常啊? [打印本页]

作者: ice2000feng    时间: 2004-9-24 12:14
标题: 为什么还会抛出异常啊?
<> try3 W# {" @) h/ v5 |% z
                {  R; R1 m1 H$ B1 j/ C% p  ~
                        
6 }* Y0 m) y( W$ K- L                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);
/ l6 ?, {6 N& X- D* k, v                        
' H- j. F7 d+ T8 |                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();2 }- T1 P1 z' V* p8 S
                        MessageBox(NULL,"你graer!","登陆数据库错误",MB_OK);
$ X. i4 J3 G; g1 v  J                        DataMod-&gt;EduManagQuery-&gt;Active=true;/ D1 W, E7 G2 c" p7 X4 `/ t
                }: j* P3 u' J6 A" A" Z& c! u4 _% d5 ?
                catch(EDBEngineError &amp;E)
) n4 a3 c, M6 M+ C                {: H9 F# T- M& m  f
                        MessageBox(this,"不能查询数据库","错误",MB_OK);
. i5 ?0 x" Z) O/ U. w& R                        ModalResult=mrAbort;/ X7 r0 B$ e* h& x
                        //DataMod-&gt;EduManagQuery-&gt;Active=false;- E  J3 C5 u  a, T$ d1 L6 t& d
                        return;# F  ?* _+ h# T+ W& Y7 o7 H
                }
1 c1 }$ y/ q1 q5 Z" J/ K( V                MessageBox(NULL,"你不是!","登陆数据库错误",MB_OK);3 P3 G, c) q/ T3 {% x
                if(DataMod-&gt;EduManagQuery-&gt;RecordCount==0)
! @7 ^+ R: S% b4 j& G                {
- W0 v1 x8 W& R' U+ T( B+ b                        if(m_nTimes==3)0 }; L" V0 ?3 s7 Y
                        {9 U4 b5 u" b0 ]. ~3 M, {$ _4 A& E+ S
                                MessageBox(NULL,"你不是合法用户!","登陆数据库错误",MB_OK);
1 R2 q& b9 \4 @3 k9 Z' ]8 z# T8 R                                ModalResult=mrAbort;
$ Y- `7 q. g" d6 ^, F6 J) W                                Close();# \- D/ l4 Q, g) H* |
                        }/ S( O- x" x3 c, _, f# i
                        else1 F( A1 \' P% g  g& O+ E
                        {$ i& v; m3 A4 Y. m3 ?  e. r0 r
                                MessageBox(NULL,"用户名不存在,请从新输入","登陆数据库错误",MB_OK);
' }) o+ X! z" `9 q) @2 L                                UserEdit-&gt;Text="";
7 {3 h; P- p# f+ w+ d                                PasswordEdit-&gt;Text="";
. f3 D( j3 U1 l                                UserEdit-&gt;SetFocus();
! d) \: r( v/ ]+ Y9 c: g* u- c2 e2 b* \                                ModalResult=mrNone;
+ [5 H1 f3 ^8 ~3 C0 h                        }
7 Z0 D! x" O- u3 X4 M, ~                }</P>
# [3 W9 l' H9 G1 [9 ]! q0 A/ }0 u7 t. d
<>try
, I% [0 E9 L2 o! d' a9 K, J0 O                {</P>5 |( C! ^2 q% G% y% f3 s" \
<>                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);
$ S, d$ G% w7 S* S- i% `- w/ z5 p) S# |                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();  n6 h. S' ^) o5 \* P/ R
                        DataMod-&gt;EduManagQuery-&gt;Active=true;</P>+ ]6 V' d% i5 Q6 |
<>                }
: O1 J& _8 m5 t: c" ]                catch(EDBEngineError &amp;E)- A) Q, ^, H$ |9 c3 Q4 _1 y
                {! L. m* |2 v) G3 a5 F+ `
                        MessageBox(this,"不能查询数据库","错误",MB_OK);
6 x4 }/ M& v! l. K+ c/ Q' M                        ModalResult=mrAbort;1 d6 o0 ~9 x0 @: F* s7 s
                        return;</P>
* z* w6 Y# V1 {5 @0 J- _; s<>
</P>) q6 x7 ]0 b- I  ?& X5 f
<>                }
0 [7 b( L7 X6 @6 R9 p% H  m4 g+ q(在一个表中查询用户名),我执行的是无论表中有没有的用户名,都抛出异常,而且程序不会执行红色的代码,为什么啊9 \3 {. j. c4 U
</P>
作者: ilikenba    时间: 2004-9-24 17:23
<>DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);</P><>在这句前面应该加上DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Clear();</P>
作者: ilikenba    时间: 2004-9-24 17:29
<>还有你这两句代码不能同时用!</P>
9 J( X* R* {) Q  A; [4 w. G<>DataMod-&gt;EduManagQuery-&gt;ExecSQL();5 Q! E! x7 ~: P0 O1 I* {# m
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>3 y1 Q( b  ^5 d$ V
<>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>2 p( W5 J( w" Z* k
<>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P>, x; j2 D! O. u8 h9 e& T7 m. G: m. B
<>DataMod-&gt;EduManagQuery-&gt;RecordCount;这句代码需要在数据集打开后才能执行,所以你这个时候就用DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
5 J0 h, Q# e# e" J* v0 k<>至于你的异常处理代码无法执行可能是你的catch里面设置的异常不对!一般的话可以用</P>
- G' l6 L6 p& n( E# X2 h<>catch(...)</P>
: A( D' z- s  P; Q- \8 T- N<>这样可以捕捉所有的异常!</P>7 ?" n6 V3 v7 R5 r3 I
[此贴子已经被作者于2004-9-24 17:33:31编辑过]

作者: ice2000feng    时间: 2004-9-24 23:13
<DIV class=quote><B>2 k6 e, J8 t% m
<>还有你这两句代码不能同时用!</P>- M4 m) w) \. V  r$ I  N1 m7 c
<>DataMod-&gt;EduManagQuery-&gt;ExecSQL();: G, k( \. A$ A. _/ T$ [: E
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
0 Y6 B. x' r& M. K& Q<>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>
- |( f8 E4 V1 l2 u! U<>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P></B></DIV>
8 O0 g8 h9 O1 B<>我是初学者,不过我感觉你说的不对啊,ExecSQL()是先执行啊,然后才执行-&gt;Active=true;</P>
" O, n/ k( R& R, P; c+ B8 x<>而且我是看着书上做的,你下面说的catch(...){},我试了,它还是抛出一样的异常,</P>
+ A9 }( f+ \! h% U. }; y' i<>它说:“Invalid use of keyword,Token:="ff(这是我要查询的用户名)",line Number:1'  ”,</P>
作者: ilikenba    时间: 2004-9-25 11:18
<>我说的没错呀!尽信书不如无书呀!</P><>从你的异常来看好像不是上面的代码报的错!你可以看看的输入代码有没有问题呀!</P><>DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Clear();这个语句加上了吗?</P>
作者: ice2000feng    时间: 2004-9-25 12:26
我把代码传上来




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5