dm.appquery.close;
dm.appquery.SQL.Clear;dm.appquery.Parameters.Clear;
dm.appquery.SQL.Add('INSERT INTO ks');
dm.appquery.SQL.Add('(ks,form) ');
dm.appquery.SQL.Add('values ');
dm.appquery.SQL.Add('(:ks1,:form1)');
dm.appquery.Parameters.ParamByName('ks1').Value:=dbedit1.Text;
dm.appquery.Parameters.ParamByName('form1').Value:=dbcombobox1.Text;
dm.appquery.ExecSQL;为什么总是提示insert语法错误呢?请高手帮忙!!!!

解决方案 »

  1.   

    dm.appquery.SQL.Add('INSERT INTO ks');
    dm.appquery.SQL.Add('(ks,form) ');
    dm.appquery.SQL.Add('values ');
    dm.appquery.SQL.Add('(:ks1,:form1)');你里的字段名用了保留字form
      

  2.   

    同意 insert2003(高级打字员)
      

  3.   

    form是保留字吗?因为你字段ks和表重名了吧。
      

  4.   

    dm.appquery.SQL.Add('([ks],[form]) ');试一下,建议换去这两个命名
      

  5.   

    堅決同意 insert2003(高级打字员)的看法。
    SQL語句看過去是沒有錯誤的。
      

  6.   

    dm.appquery.SQL.Add('(ks,form) ');中的ks,form错误,在delphi中字段名不要用form
      

  7.   

    小伙子,保留字(form)也不浪费,改一下就好!
      

  8.   

    我的感觉,不一定对:
    你的两个参数是字符串,所以最后出来的SQL语句是
    insert into ... values(aaaa,bbbbb);
    如果你的表的类型是char或者是varchar的话,这个语句自然就不对了,因为aaaa和bbbb没加引号. 不过我以前也遇到过这样的问题,就是加了引号以后参数就不好使了,只能构造出SQL语句再执行.
      

  9.   

    dm.appquery.Parameters.ParamByName('ks1').Value:=trim(dbedit1.Text);
    dm.appquery.Parameters.ParamByName('form1').Value:=trim(dbcombobox1.Text);
      

  10.   

    把这句dm.appquery.SQL.Add('(ks,form) ');改成dm.appquery.SQL.Add('([ks],[form])');试试看