有两个问题,一个是degrid里除了数字显示的都是乱码,还有就是查询不出来,出错提示为:gerenal sql error!请大家帮忙看看,谢谢了~
procedure TForm11.BitBtn3Click(Sender: TObject);
var
sqlstr,strval,comstr:string;
flag:integer;
begin
memo1.clear;
memo1.Lines.Add('        商品名称,                                         数量    ');
memo1.Lines.Add('----------------------------------------------------------------------------------') ;
flag:=0;
strval:=trim(edit1.Text);
if strval<>''then
begin
sqlstr:='select*from rkguanli where(mingcheng='+'"+strval+")';
flag:=1;
end;
  strval:=trim(edit2.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(caigouren='+'"+strval+")';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(name='+'"+strval+")';
  end;
  strval:=trim(edit3.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(zongjia=edit3.Text)';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(zongjia='+'"+strval+")';
  end;  strval:=trim(edit4.Text);
  if strval <>''then
  begin
  sqlstr:='select *from rkguanli where(rukuriqi='+'"+strval+")';
  flag:=1;
  end
  else
  begin
  sqlstr:=sqlstr +'and(rukuriqi='+'"+strval+")';
  end;
 if flag=0 then
 begin
 showmessage ('请正确输入查询条件');
 end;
 query1.Close;
 query1.sql.text:=sqlstr;
 query1.Open;
 flag:=0;
 while not query1.Eof do
 begin
 sqlstr:=query1.fieldbyname('mingcheng').AsString ;
 sqlstr:=sqlstr+','+query1.fieldbyname('shuliang').asstring;
 memo1.Lines.add(sqlstr);
 query1.Next;
 flag:=flag+1;
 end;
 memo1.Lines.Add('---------------------------------------------') ;
 memo1.Lines.add('一共有'+inttostr(flag)+'项符合查询条件');
 end;
end.

解决方案 »

  1.   

    SQL语句写错了,跟踪一下,注意'''
      

  2.   

    select   *from   rkguanli   where(rukuriqi= "+ ""+strval+") 
    注意空格
      

  3.   

    你程序里面怎么都是双引号啊?
    记得delphi里面没有啊
    奇怪
      

  4.   

    sqlstr:= "select   *from   rkguanli   where(caigouren= "+ ""+strval+") "; 
    应该是:
    sqlstr:= "select   * from   rkguanli   where (caigouren= " +strval+ ")"; 
    SQL语句你可以一个个调试出来在企业管理器或SQL查询分析器里执行一下,语法没错了就OK.
      

  5.   

    帮忙啊,楼上给的SQL语句也不好使呀,连运行都运行不了,到底该怎么写呢?