本人用Query 向数据库添加数据项 代码如下:   添加数据项,使用变量出现错误 :type mismatch in expression
  query1.Close;
  query1.SQL.Clear;
  query1.sql.Add('insert  ');
  query1.sql.Add('into product(pno,pname,type,factory,p_buy,p_sell,number) ');
  query1.sql.Add('values(:pno,:pname,:type,:factory,:p_buy,:p_sell,:number)');
  query1.Params[0].AsString:=edit1.Text;
  query1.Params[1].AsString:=edit2.Text;
  query1.Params[2].AsString:=combobox1.Text ;
  query1.Params[3].AsString:=edit3.Text;
  query1.Params[4].AsString :=edit4.text;
  query1.Params[5].AsString:=edit5.Text;
  query1.Params[6].AsString:=edit6.Text;
  query1.Open;
添加数据项,出现错误 :type mismatch in expression之后数据显示不出来,关掉之后, 发现数据添加成功请各位大侠帮小弟诊断一下,万分感谢  !!!! 
  数据库:Delphi 6--database desktop--Paradox 7 table
   商品(pno,pname,type,factory,p_buy,p_sell,number)
   数据类型(a,a,a,a,$,$,n)   [email protected]

解决方案 »

  1.   

    你的字符串类型缺少引号。
    query1.sql.Add('into product(pno,pname,type,factory,p_buy,p_sell,number) ');
    query1.sql.Add('values(:pno,":pname",:type,:factory,:p_buy,:p_sell,:number)');
      

  2.   

    把 query1.Params[0].AsString:=edit1.Text;......
    改为query1.ParamByName('pno').AsString:=Trim(edit1.Text);
        query1.ParamByName('pname').AsString:=Trim(edit2.Text);
    ......
    试试
    另外要注意edit4.Text,edit5.Text的值要为数字,不能为字符(包括空格)