我在运行的时候出现了这个问题,出错提示是: unexpected end of command token. line number:1我的代码是:procedure TForm9.Button1Click(Sender: TObject);
var
str:string;
begin
if trim(edit1.Text)='' then
application.MessageBox('请在输入框中输入数据','信息框',mb_ok)
else
case combobox1.ItemIndex of
0: str:='select 产家,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 产家 like "%'+trim(edit1.text)+'%" group by 产家 order by 产家';
1: str:='select 型号,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 型号 like "%'+trim(edit1.text)+'%" order by 型号';
2: str:='select 买主姓名,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 买主姓名 like "%'+trim(edit1.text)+'%" order by 买主姓名';
end;
query1.SQL.Clear;
query1.sql.Add(str);
query1.Open;
showmessage('共找到'+inttostr(query1.RecordCount)+'条记录');
end;procedure TForm9.FormCreate(Sender: TObject);
begin
query1.Close;
query1.DatabaseName:=getcurrentdir+'\data';
query1.Open;请各位高手帮我看看还有一个问题就是我在运行这个软件的时候,在FORM2的页面运行了按照姓名查询,当我关闭了FORM2,然后再打开FORM2的时候,DBGIRD里的记录却还是我按照姓名查询的记录?请问这是怎么回事啊?怎么解决?

解决方案 »

  1.   

    procedure TForm9.FormCreate(Sender: TObject);
    begin
    query1.Close;
    query1.DatabaseName:=getcurrentdir+'\data';
    query1.Open;
    end;后面有end;
      

  2.   

    procedure TForm9.Button1Click(Sender: TObject);
    var str:string;
    begin
      if trim(edit1.Text)='' then
        application.MessageBox('请在输入框中输入数据','信息框',mb_ok)
      else
      begin --多加一个begin..end
        case combobox1.ItemIndex of
          0: str:='select 产家,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 产家 like "%'+trim(edit1.text)+'%" group by 产家 order by 产家';
          1: str:='select 型号,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 型号 like "%'+trim(edit1.text)+'%" order by 型号';
          2: str:='select 买主姓名,sum(数量)as 统计数量,sum(售价)as 共售价 from lssj where 买主姓名 like "%'+trim(edit1.text)+'%" order by 买主姓名';
        end;
        query1.SQL.Clear;
        query1.sql.Add(str);
        query1.Open;
        showmessage('共找到'+inttostr(query1.RecordCount)+'条记录');
      end;  --
    end;2.你在关闭窗口之前先关闭数据集
      

  3.   

    问题一:可能sql语句有错"%'+trim(edit1.text)+'%"应该是like ''%'+trim(edit1.text)+'%'',请你注意用两个单引号''来代替一个双引号"。问题二:可能有两种情况,一是你缺少sql.clear;这一句。一般打开一个新的adoquery时的顺序:close;sql.clear;sql.add(str);open;
    二是你的form2没有释放,在onclose事件加以下语句:action:=cafree;
      

  4.   

    出错是因为上面说的吧,少一句query1.close和一个end
    后面那个问题你在打开form2的事件里应该加上显示原表的代码试试