有两个问题,一个是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.