数学建模社区-数学中国

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

作者: ice2000feng    时间: 2004-9-24 12:14
标题: 为什么还会抛出异常啊?
<> try
* b3 B) a8 ~6 h9 k3 T. X$ a. G                {- b2 k9 d8 _. A# m3 C
                        ! f2 R' V% y& e1 J7 J- B
                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);( r; d- F" o9 y1 p6 B: c$ {) u
                        
4 ?# g2 G0 u/ f4 Z% N                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();
5 X  u# B* Z2 G6 B( C, {8 U8 i% [                        MessageBox(NULL,"你graer!","登陆数据库错误",MB_OK);# e- h2 u. s- F7 d2 N1 C6 S1 _6 I
                        DataMod-&gt;EduManagQuery-&gt;Active=true;
: M, g8 U& b+ i: w+ ~                }
, |- b5 `$ i' H- {. t/ u7 f1 ?2 c+ n                catch(EDBEngineError &amp;E)4 ^8 S$ Z0 H# t* Q  y5 m
                {
8 ?5 W$ u! S$ a& I- Q                        MessageBox(this,"不能查询数据库","错误",MB_OK);
' V, P; {4 ]5 h                        ModalResult=mrAbort;
! \* F. y  p. i1 E9 {                        //DataMod-&gt;EduManagQuery-&gt;Active=false;9 U% o4 _$ D5 X) |7 v
                        return;8 g/ r1 `- o; N1 M
                }9 t  v! ^9 _6 }* |* P& h8 v
                MessageBox(NULL,"你不是!","登陆数据库错误",MB_OK);
- d1 C# |7 j: u7 R* y( P0 |6 w                if(DataMod-&gt;EduManagQuery-&gt;RecordCount==0)
/ ?, R: M/ h. }                {0 \, q+ Q- S6 F
                        if(m_nTimes==3)9 V/ H2 p9 ]1 I. ^& h& K/ p/ C9 S! I
                        {
0 S; H" O7 J7 U                                MessageBox(NULL,"你不是合法用户!","登陆数据库错误",MB_OK);* J/ K2 s& ^& O7 M
                                ModalResult=mrAbort;
7 W  X; I" ?! C* o. c# v4 W! K* _                                Close();
) d/ I% a( u5 l$ R8 R                        }
5 c, k& y& Y2 a) K                        else
/ v( @4 a% L( O/ B                        {
! b, j6 a- }; ^7 Z9 M2 e. i                                MessageBox(NULL,"用户名不存在,请从新输入","登陆数据库错误",MB_OK);/ T" A# [$ Q5 z& l1 i, B$ c
                                UserEdit-&gt;Text="";
6 [4 I' G4 S- V* f, b                                PasswordEdit-&gt;Text="";
) ~- B8 a. `* i) X8 r: p" r                                UserEdit-&gt;SetFocus();
' R# c; v6 f0 A7 f+ C6 [                                ModalResult=mrNone;
- z% ]; u. J; [- r  m' H% [                        }
* R* P7 X( U  ~1 V. t( N# Y% K                }</P>
4 M# o: U; _1 z+ K
8 I$ x' I/ ^8 K  ?' R% {! j<>try1 z  p0 C" Z7 Y/ y$ ^) u+ v1 v- |
                {</P>
$ c0 g9 V- k& X+ V<>                        DataMod-&gt;EduManagQuery-&gt;SQL-&gt;Add(queryString);/ t( Z* }3 f3 s" K
                        DataMod-&gt;EduManagQuery-&gt;ExecSQL();
' Q) q! V; q6 y  J. p                        DataMod-&gt;EduManagQuery-&gt;Active=true;</P># e2 u& x) N. ~" j" F' T' _$ t
<>                }  j* @: Y0 e. o6 ?
                catch(EDBEngineError &amp;E)
0 e' @, H1 e' s3 B! c                {
+ [6 l4 B$ u) M# @4 ^                        MessageBox(this,"不能查询数据库","错误",MB_OK);
& f& G# ^$ E: y7 u8 ?" S                        ModalResult=mrAbort;
5 d) M# W' n8 [4 {  q3 N5 d5 S                        return;</P>6 A" y: W3 ?  I$ r# [( r  c
<>
</P>
6 d. V8 l6 ?! U5 a5 H: N0 M% y0 T<>                }
1 L5 N% m, @. M& ~2 d+ M9 i6 R(在一个表中查询用户名),我执行的是无论表中有没有的用户名,都抛出异常,而且程序不会执行红色的代码,为什么啊
' _, T5 _, x! R" V</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>! R7 b' s+ v- P! `2 s# N
<>DataMod-&gt;EduManagQuery-&gt;ExecSQL();/ t* C4 b6 p* u% h3 Q
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
& p- v) ]) A& V- u<>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>0 k* N1 W( j$ ~' _0 {( g& L; ]0 q
<>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P>
- q, ]8 N" v) i' u3 Z9 F( `8 z7 k- j% H<>DataMod-&gt;EduManagQuery-&gt;RecordCount;这句代码需要在数据集打开后才能执行,所以你这个时候就用DataMod-&gt;EduManagQuery-&gt;Active=true;</P>8 Z" U( X* P/ |7 X
<>至于你的异常处理代码无法执行可能是你的catch里面设置的异常不对!一般的话可以用</P>
  V3 r0 k. f& W$ [- `5 Z<>catch(...)</P>
7 m# D/ f  w/ r/ n4 f4 V+ p<>这样可以捕捉所有的异常!</P>* C5 I& h; l4 N5 H/ \6 F# N
[此贴子已经被作者于2004-9-24 17:33:31编辑过]

作者: ice2000feng    时间: 2004-9-24 23:13
<DIV class=quote><B>6 C- |8 y2 E1 @* j7 X, l7 C' }3 }
<>还有你这两句代码不能同时用!</P>
0 _1 V8 l6 C& T<>DataMod-&gt;EduManagQuery-&gt;ExecSQL();; m# |( a- a- O8 j" Q1 w6 W
DataMod-&gt;EduManagQuery-&gt;Active=true;</P>
" i/ v1 o% V4 ~( B- s. y<>Active=true;的意思相当于Open();就是执行SQL语句并将结果表打开!</P>4 {' M) w% ~+ B! O
<>ExecSQL();的意思是只执行SQL语句而不打开结果数据集!</P></B></DIV>2 [2 ^* o' p8 q. ^& S
<>我是初学者,不过我感觉你说的不对啊,ExecSQL()是先执行啊,然后才执行-&gt;Active=true;</P>4 z: X" y* Q- T- ~& Q
<>而且我是看着书上做的,你下面说的catch(...){},我试了,它还是抛出一样的异常,</P>
  m. H9 O9 j, |/ }# T1 b<>它说:“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