数学建模社区-数学中国

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

作者: 瞌睡龙    时间: 2004-7-30 09:49
标题: 我的问题最多,55555555555,我又来麻烦大家了
<>又来麻烦大家了,有以下程序:</P>
# K! e' }1 D% |+ [+ W<>void __fastcall TForm1::N14Click(TObject *Sender)2 t0 a" E. s. l8 ]& U- y
{
/ f$ T( U& B# `( X9 O' {   int nScore;
% m8 x0 b8 ]) z/ R   AnsiString strScore=InputBox("请输入费率区","请输入费率区","");
7 f9 u4 P% E; M  j   if(strScore =="")* q3 O; L# M3 W/ g/ [1 n# I
   return;
; Q' a4 @  i, Z- j3 S" Y   nScore=StrToInt(strScore);8 q2 e5 P* S4 n0 i( U* s4 c
   if(nScore&lt;790||nScore&gt;799)8 J+ g/ I% I) K5 a' E
   {" J! D6 H6 u% \. d; w  \8 O
     ShowMessage("数据输入错误!");6 ?  S; H# r3 L* p: X4 r$ V: }2 ]
     return;  }, M5 T' ~6 B6 A; R6 H% r9 T2 V8 G5 V: A
   }
# F( L, o. R$ o( v- E& f6 \, _     * P% I; T( q3 O+ G9 j& w' d0 }
}</P>
2 E/ G4 O' Q8 Z) P" \2 J<>这个主要是要求使用程序者输入它所在的费率区,输入到strScore中,第二段程序:</P>; V7 q' G) q; H+ _) _+ \$ t
<>   ADOQuery1-&gt;Close();
' Q1 m0 b1 t. s8 Z$ A5 H   ADOQuery1-&gt;SQL-&gt;Clear();
: a/ }! \3 c  S# s   ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");
8 B) \7 D7 D% U" K% M' W" o7 e   ADOQuery1-&gt;Open();</P>
7 y' m, _; d% \# R<>将得到的值代入程序,但是编译没有问题,使用了的时候显示“无效的数字”,初步判断是全局变量的问题,现修改头文件</P>
0 O+ [0 W# `7 M7 E5 s<>//---------------------------------------------------------------------------</P>  t+ z5 v$ t/ r  T( X
<>#include &lt;vcl.h&gt;
  A8 h: E' d8 ]. N#pragma hdrstop</P>
/ h2 z, b! q: g  g5 W& k<>#include "Unit3.h"
2 E1 y: @0 T- W3 I//---------------------------------------------------------------------------
) ^8 e7 y7 c5 M) O+ z* J( d4 R  |#pragma package(smart_init)
. e. |: N) F2 M#pragma resource "*.dfm"/ T( G. d6 _) W& J' b. G
TForm1 *Form1;% i& e* A. e# T9 T8 P
int nScore;
7 G% b0 Z  F  ZAnsiString strScore;</P>
7 X, b7 v" I2 {- e  X' h" O<>结果还是老样子,请大家帮忙看一下,谢谢!</P>( i5 x4 ]) K/ x2 D4 u6 ]
[此贴子已经被作者于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>, `: F+ k7 |$ i- y, H* |
<>按照你说的改了以后,编译正常,执行时报以下错误</P>1 t. c& [! f. x, j
<>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>
- y6 F$ e; M* ?% _7 ?8 F1 m! k) H<>1.去掉了strScore,nScore在下面程序的定义</P>0 q6 C/ J+ c7 t2 M6 @+ x' F
<>2.增加了一个label观察strScore的值</P>
4 F+ d" ^# E' |0 E<>3.修改sql语句为</P>$ E3 w3 `% o9 l
<>ADOQuery1-&gt;SQL-&gt;ADD("SELECT * FROM JXPRM.GROUP_INFO);</P>' ]5 \+ h% R0 j4 J* F  j8 C/ S8 D
<>ADOQuery1-&gt;SQL-&gt;ADD("WHERE GROUP_CITY="+'nScroe'");</P>4 d" V' {( v! A
<>但是依然报原来的错误,观察Label,输入的数据确实进了参数</P>




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