数学建模社区-数学中国

标题: 我的问题最多,55555555555,我又来麻烦大家了 [打印本页]

作者: 瞌睡龙    时间: 2004-7-30 09:49
标题: 我的问题最多,55555555555,我又来麻烦大家了
<>又来麻烦大家了,有以下程序:</P>8 g! O# ~" K1 p& G- y9 K
<>void __fastcall TForm1::N14Click(TObject *Sender)( I* M, r* @; p
{6 o( l: e2 Q% ^( I' f0 e
   int nScore;
3 X2 z3 K6 I/ O. F: E, k0 @; I   AnsiString strScore=InputBox("请输入费率区","请输入费率区","");* y# L/ x. O: n/ B
   if(strScore =="")
! d  g% w3 y2 \5 c0 s( Z/ R   return;! ^& z) g. r8 d9 N4 v5 m3 L
   nScore=StrToInt(strScore);
+ U" V( c$ g1 @3 a- F  }' z: c   if(nScore&lt;790||nScore&gt;799)
$ Z/ W) i" d0 f" p6 y* q% i   {. G. H6 c: O" j3 h0 S1 {' n; N
     ShowMessage("数据输入错误!");
! W" R3 o* ~( M' t% O     return;
8 ?3 R/ m6 d0 H( [3 o   }
9 D  }$ A" S+ m1 y     4 H! I' e* h) `
}</P>& V0 y3 H$ @  g' z
<>这个主要是要求使用程序者输入它所在的费率区,输入到strScore中,第二段程序:</P>
/ p3 L5 E$ J7 p  g1 ]" [8 c<>   ADOQuery1-&gt;Close();
% o" O# j2 x6 ]7 y! O   ADOQuery1-&gt;SQL-&gt;Clear();+ l' F$ k2 P2 d
   ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");" E1 H$ R! A6 V( M0 a5 u+ d- D
   ADOQuery1-&gt;Open();</P>
# u% u3 O  w# _<>将得到的值代入程序,但是编译没有问题,使用了的时候显示“无效的数字”,初步判断是全局变量的问题,现修改头文件</P>. v  T* V$ ~' M
<>//---------------------------------------------------------------------------</P>9 Q3 m9 K( }) B
<>#include &lt;vcl.h&gt;$ K6 M% K  b* j5 b2 n
#pragma hdrstop</P>
+ k% M. J/ r7 R<>#include "Unit3.h"
. `- N/ B) [# S9 |& g//---------------------------------------------------------------------------' J6 Q5 {. v# _; p$ ^7 p2 m
#pragma package(smart_init)  P  r8 E- I# {! U' L; g
#pragma resource "*.dfm". \1 b2 h  F& {4 b
TForm1 *Form1;- `+ q; Q  i6 J1 \, h8 R6 {; ?
int nScore;
$ _4 u7 R! y  S9 _) W' |# ^AnsiString strScore;</P>$ ~7 K/ ~' b. _9 u& c3 w9 D& ]
<>结果还是老样子,请大家帮忙看一下,谢谢!</P>" \5 g' n) W. V+ g
[此贴子已经被作者于2004-7-30 10:22:25编辑过]

作者: ilikenba    时间: 2004-7-30 12:32
<>ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");这句错了!应该改成下面两句!</P><>AnsiString str="SELECT * FROM jxprm.group_info WHERE group_city='"+strScore+"'";</P><>ADOQuery1-&gt;SQL-&gt;Add(str);</P>
作者: 瞌睡龙    时间: 2004-7-30 15:00
<>我试了一下,编译没有报错,点击以后也没有什么问题,但是DBGrid里面没有显示,怀疑这个数据没有传进去,查看了一下,group_id的数据类型是number</P>
作者: ilikenba    时间: 2004-7-30 19:20
<>你这几句里面没有用到group_id呀,如果SQL里面用的字段是number型的,则在Where后面的判断语句需要去掉两边的单引号!</P>
作者: 瞌睡龙    时间: 2004-8-2 08:42
<>不好意思是我打错了,应该是group_city</P>; l: i2 |# u0 }) x1 i" k1 l
<>按照你说的改了以后,编译正常,执行时报以下错误</P>
8 w3 X; [; V: V$ H<>roject Project2.exe raised exception class EOleException with message 'ORA-00921:未预期的sql命令结尾.Process stopped .Use step or Run to continue.</P>
作者: ilikenba    时间: 2004-8-2 22:17
<>可能是你的Orecal数据库不支持标准SQL语句的问题,好像最后的'应该改成/',你自己查查它的帮助就知道了!</P>
作者: 瞌睡龙    时间: 2004-8-3 11:37
<>还是不行哦,我已经作了以下修改</P>
9 K- C& g! M& t8 _; p0 R<>1.去掉了strScore,nScore在下面程序的定义</P>( F5 h8 @- o# E) Y$ i
<>2.增加了一个label观察strScore的值</P>
" F& X" `9 h4 ]<>3.修改sql语句为</P>
1 {  {8 U# g8 d  V0 m& l8 R<>ADOQuery1-&gt;SQL-&gt;ADD("SELECT * FROM JXPRM.GROUP_INFO);</P>! v* o: G% d. S+ S2 i$ _+ I
<>ADOQuery1-&gt;SQL-&gt;ADD("WHERE GROUP_CITY="+'nScroe'");</P>. ^. s- l2 G& v; d
<>但是依然报原来的错误,观察Label,输入的数据确实进了参数</P>




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