请问下面一段程序中,为什么在运行到Open处就出现:第一行typexxxx处有语法错误请帮帮手,TKS!procedure button1.N1Click(Sender: TObject);
var
  tmp:String;
  TmpQuery:TADOQuery;
begin
  tmp:=InputBox('提示','请输入物料类别名称:','');
  if tmp='' then
    exit;
  TmpQuery:=TADOQuery.Create(Self);
  TmpQuery.Connection:=dm.Adoc;
  with TmpQuery do
  begin
    SQL.Clear;
    SQL.Add('select * from MaterielType where Type'+tmp);
    Prepared;
    try
      open;
    except
      ShowMessage('打开物料类型数据出错!');
      exit;
    end;
  end;
  if TmpQuery.RecordCount>0 then
  begin
     ShowMessage('当前类型已存在,请重输!');
     exit;
  end;
  TvMaterielType.Items.Add(nil,tmp);
end;

解决方案 »

  1.   

    估计是SQL语句错误 
    SQL.Add('select * from MaterielType where Type'+tmp);
    改为
    SQL.Add('select * from MaterielType where Type='''+tmp+'''');
      

  2.   

    修后:SQL.Add('select * from MaterielType where Type='+tmp);
      

  3.   

    mestars(米豆)(☆☆) 的答案不正确
      

  4.   

    TO: saien(有问必答)又出错是这样的:列名xxxx无效(其中XXXX是我输入的内容)
    请再帮我看看啊,Thanks!
      

  5.   

    SQL.Add('select * from MaterielType where Type=:t1');
    Parameters[0].values:=tmp;
      

  6.   

    或者这样SQL.Add('select * from MaterielType where Type='+''''+tmp+'''');
      

  7.   

    推荐用动态参数查询
    就像adminis(古董) 的方式
    不易出错