瞌睡龙 发表于 2004-7-30 09:49

我的问题最多,55555555555,我又来麻烦大家了

<P>又来麻烦大家了,有以下程序:</P>
<P>void __fastcall TForm1::N14Click(TObject *Sender)
{
   int nScore;
   AnsiString strScore=InputBox("请输入费率区","请输入费率区","");
   if(strScore =="")
   return;
   nScore=StrToInt(strScore);
   if(nScore&lt;790||nScore&gt;799)
   {
     ShowMessage("数据输入错误!");
     return;
   }
     
}</P>
<P>这个主要是要求使用程序者输入它所在的费率区,输入到strScore中,第二段程序:</P>
<P>   ADOQuery1-&gt;Close();
   ADOQuery1-&gt;SQL-&gt;Clear();
   ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");
   ADOQuery1-&gt;Open();</P>
<P>将得到的值代入程序,但是编译没有问题,使用了的时候显示“无效的数字”,初步判断是全局变量的问题,现修改头文件</P>
<P>//---------------------------------------------------------------------------</P>
<P>#include &lt;vcl.h&gt;
#pragma hdrstop</P>
<P>#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int nScore;
AnsiString strScore;</P>
<P>结果还是老样子,请大家帮忙看一下,谢谢!</P>
[此贴子已经被作者于2004-7-30 10:22:25编辑过]

ilikenba 发表于 2004-7-30 12:32

<P>ADOQuery1-&gt;SQL-&gt;Add("SELECT * FROM jxprm.group_info WHERE group_city='strScore'");这句错了!应该改成下面两句!</P><P>AnsiString str="SELECT * FROM jxprm.group_info WHERE group_city='"+strScore+"'";</P><P>ADOQuery1-&gt;SQL-&gt;Add(str);</P>

瞌睡龙 发表于 2004-7-30 15:00

<P>我试了一下,编译没有报错,点击以后也没有什么问题,但是DBGrid里面没有显示,怀疑这个数据没有传进去,查看了一下,group_id的数据类型是number</P>

ilikenba 发表于 2004-7-30 19:20

<P>你这几句里面没有用到group_id呀,如果SQL里面用的字段是number型的,则在Where后面的判断语句需要去掉两边的单引号!</P>

瞌睡龙 发表于 2004-8-2 08:42

<P>不好意思是我打错了,应该是group_city</P>
<P>按照你说的改了以后,编译正常,执行时报以下错误</P>
<P>Project 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

<P>可能是你的Orecal数据库不支持标准SQL语句的问题,好像最后的'应该改成/',你自己查查它的帮助就知道了!</P>

瞌睡龙 发表于 2004-8-3 11:37

<P>还是不行哦,我已经作了以下修改</P>
<P>1.去掉了strScore,nScore在下面程序的定义</P>
<P>2.增加了一个label观察strScore的值</P>
<P>3.修改sql语句为</P>
<P>ADOQuery1-&gt;SQL-&gt;ADD("SELECT * FROM JXPRM.GROUP_INFO);</P>
<P>ADOQuery1-&gt;SQL-&gt;ADD("WHERE GROUP_CITY="+'nScroe'");</P>
<P>但是依然报原来的错误,观察Label,输入的数据确实进了参数</P>
页: [1]
查看完整版本: 我的问题最多,55555555555,我又来麻烦大家了