数学建模社区-数学中国

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

作者: 瞌睡龙    时间: 2004-7-30 09:49
标题: 我的问题最多,55555555555,我又来麻烦大家了
<>又来麻烦大家了,有以下程序:</P>
" H' e4 U4 t6 y<>void __fastcall TForm1::N14Click(TObject *Sender)& v0 [% w$ q3 q# d0 S3 n& i
{1 |, b3 w3 R4 k
   int nScore;/ R7 w! z: _; f# `
   AnsiString strScore=InputBox("请输入费率区","请输入费率区","");
4 Z% j  H( |9 [6 U! ]. D6 H" I- D   if(strScore =="")
2 y3 b: v( w( C   return;
3 p! N. ^6 @, f( \' @" b5 K   nScore=StrToInt(strScore);$ f: I( E  }& G1 `. p  l% |
   if(nScore&lt;790||nScore&gt;799)
1 _+ r7 ], l6 v8 X9 v6 P& K   {0 R; o4 c6 f( w8 X; \1 n) u
     ShowMessage("数据输入错误!");0 z# @/ p2 S8 A& ^  S, Z
     return;
2 Z2 @: x8 r' a3 a   }
! {0 F1 Z  L8 H$ k& B: o4 S, D3 x4 B, ~     $ l' ^# P4 H2 }/ Q/ }9 h' {
}</P>
: [1 S: l( C* a- ~) L# j3 f/ w<>这个主要是要求使用程序者输入它所在的费率区,输入到strScore中,第二段程序:</P>
2 O5 a+ C/ R5 i5 }& q<>   ADOQuery1-&gt;Close();
9 d4 b3 E# c+ e   ADOQuery1-&gt;SQL-&gt;Clear();2 Q1 W( ]) i" y: u/ v7 H* w( }
   ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");
6 L! c) B$ G$ R# I   ADOQuery1-&gt;Open();</P>
, f4 A4 h8 T6 e* P' ^2 d+ e<>将得到的值代入程序,但是编译没有问题,使用了的时候显示“无效的数字”,初步判断是全局变量的问题,现修改头文件</P>! D7 c0 Z) z4 b! b# b) n& M
<>//---------------------------------------------------------------------------</P>
7 _' C+ x! k  I3 {<>#include &lt;vcl.h&gt;
/ ]4 N# r( n9 z7 j( T#pragma hdrstop</P>
# d0 T- ^9 U5 \, ]- S7 M, X. m% g<>#include "Unit3.h"
) a) V; e: l: P2 J# H9 l- _//---------------------------------------------------------------------------
* A, Y: f6 C2 v6 u- _# F' H#pragma package(smart_init)2 [- I# H9 t7 ~' n* F' i8 u6 O
#pragma resource "*.dfm", t1 Q: [3 U& c3 }
TForm1 *Form1;
& w4 E" F/ x# M, A0 P6 gint nScore;
/ C: K2 W% M, d/ _/ ^: w* G# eAnsiString strScore;</P>" h( B8 `1 i" i, j$ x
<>结果还是老样子,请大家帮忙看一下,谢谢!</P>6 I1 U( C1 W" w4 w
[此贴子已经被作者于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>
% w) y1 {9 n& ?1 N( C5 O- z5 g7 H<>按照你说的改了以后,编译正常,执行时报以下错误</P>- n) h' |$ `9 V! `/ P. `% _
<>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>
4 k9 N0 l) ^+ R3 q5 C  j<>1.去掉了strScore,nScore在下面程序的定义</P># X  V" m$ [" P" l* t4 b- ]0 O
<>2.增加了一个label观察strScore的值</P>
0 X' D* t1 N. D6 j4 s6 f<>3.修改sql语句为</P>: s7 T- L( I0 z) v8 k
<>ADOQuery1-&gt;SQL-&gt;ADD("SELECT * FROM JXPRM.GROUP_INFO);</P>
7 h3 G( W" V7 p! w9 Z; t<>ADOQuery1-&gt;SQL-&gt;ADD("WHERE GROUP_CITY="+'nScroe'");</P>
+ o4 s; ?; I* d2 y: u; i# b<>但是依然报原来的错误,观察Label,输入的数据确实进了参数</P>




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