数学建模社区-数学中国

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

作者: 瞌睡龙    时间: 2004-7-30 09:49
标题: 我的问题最多,55555555555,我又来麻烦大家了
<>又来麻烦大家了,有以下程序:</P>
$ t- H; j, y6 Y0 y7 O<>void __fastcall TForm1::N14Click(TObject *Sender)
& m; {, }0 u3 h& j) e0 t{# N- s9 ~0 P! ]# `/ z) Y5 {
   int nScore;- P4 o$ j+ a% \* r0 M6 O1 T. Z
   AnsiString strScore=InputBox("请输入费率区","请输入费率区","");: f; d; f  a$ O, y) k
   if(strScore =="")
* G+ q2 g) F  `0 U1 X   return;
- m2 l6 k/ m% X- n   nScore=StrToInt(strScore);, j% ~" x0 N% j0 N9 n" O, ?$ L4 _7 ]
   if(nScore&lt;790||nScore&gt;799)5 D! m0 T; w9 l6 W
   {( a  h! a. w- s1 w5 T8 q$ H3 Q
     ShowMessage("数据输入错误!");: ^# P0 }' w# a  L% F% U
     return;. S  z5 L. I+ Q; |! ?- i
   }* C. R! S6 E, ]* v# K
     ) k, i2 c6 P. V7 \% I, q/ u6 p
}</P>5 R2 h" a3 w( k- l6 u
<>这个主要是要求使用程序者输入它所在的费率区,输入到strScore中,第二段程序:</P>
6 f0 c- p3 _2 X3 u2 O<>   ADOQuery1-&gt;Close();
- ^5 d8 d( j3 C$ `6 A! Q! d   ADOQuery1-&gt;SQL-&gt;Clear();- _5 M. S2 b0 _( Y6 a& Y; N8 b
   ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");" i* {" ]8 Q' B4 \
   ADOQuery1-&gt;Open();</P>
; A; }9 ?& Q- D* ]<>将得到的值代入程序,但是编译没有问题,使用了的时候显示“无效的数字”,初步判断是全局变量的问题,现修改头文件</P>
* ^! Y- f# O$ }# W2 g8 j- G# y+ f# y<>//---------------------------------------------------------------------------</P>
: D: `0 R+ t& @/ m<>#include &lt;vcl.h&gt;  ]( O: l: Q+ u3 l3 a
#pragma hdrstop</P>
' U9 `! Y  M, V! J2 I3 N<>#include "Unit3.h"/ G. |. A( n+ n2 r* Q: H) _/ T
//---------------------------------------------------------------------------5 G; f$ r8 ?: i+ N: I
#pragma package(smart_init)
- e- i2 q3 n+ H' s6 P. B0 q#pragma resource "*.dfm"& I, H# V6 E6 ?0 Y- l
TForm1 *Form1;7 |/ s4 r4 w2 Y
int nScore;5 d  o! Z7 L8 W/ U+ [
AnsiString strScore;</P>
1 e% N+ D- O; B& H<>结果还是老样子,请大家帮忙看一下,谢谢!</P>
* O/ {: V# D9 b9 o
[此贴子已经被作者于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>( @& ~. Y# H3 p- b! o$ v
<>按照你说的改了以后,编译正常,执行时报以下错误</P>; R8 X: s$ z" e% r' G" [
<>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>: V9 v  C+ g+ L9 l+ g& J/ T
<>1.去掉了strScore,nScore在下面程序的定义</P>
! p$ B6 l, G$ h<>2.增加了一个label观察strScore的值</P>
1 _( {( p5 F. E3 c' e4 S6 Y0 R<>3.修改sql语句为</P>
& {' V6 r" K3 P* D% I<>ADOQuery1-&gt;SQL-&gt;ADD("SELECT * FROM JXPRM.GROUP_INFO);</P>
7 v& }+ o9 n3 w4 O' Z5 o<>ADOQuery1-&gt;SQL-&gt;ADD("WHERE GROUP_CITY="+'nScroe'");</P>
3 J: K' z9 z2 a2 w3 N, Q. A- r<>但是依然报原来的错误,观察Label,输入的数据确实进了参数</P>




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