这是代码:  
 with  DataModule3.adoquery3 do
   begin
    close;
    sql.clear;
    sql.add('INSERT into enter(date,number,duty,re) VALUES(:date,:number,:duty,:re)');
    parameters.parambyname('date').value :=FormatDatetime('yyyy-mm-dd',now());    parameters.parambyname('number').value :=strtoint(edit1.text);
    parameters.parambyname('duty').value := trim(edit2.text);
    parameters.parambyname('re').value :=trim(edit3.text);
    open;
   end;
提示的错误是sql有语法错误
我如果把(:date,:number,:duty,:re)');改成(:date,:number,":duty",":re")');时他提示说找不到duty的内容,弄了很长时间了,不知道怎么回事

解决方案 »

  1.   

    with  DataModule3.adoquery3 do
       begin
        close;
        sql.clear;
        sql.add('INSERT into enter(date,number,duty,re) VALUES(:date,:number,:duty,:re)');
        parameters.parambyname('date').value :=FormatDatetime('yyyy-mm-dd',now());    parameters.parambyname('number').value :=strtoint(edit1.text);
        parameters.parambyname('duty').value := trim(edit2.text);
        parameters.parambyname('re').value :=trim(edit3.text);
        open;//ExecSQL;
       end;
      

  2.   

    楼主老大,OPEN是有返回值的,ExecSQL只是执行操作,没有返回值的
      

  3.   

    改了提示一样:parambyname 'duty'not found
      

  4.   

    access数据库
    id 自动编号
    date日期时间
    code文本
    number数字
    re文本
    deal文本
      

  5.   

    access数据库
    id 自动编号
    date日期时间
    code文本
    number数字
    re文本
    deal文本
    duty文本
      

  6.   

    没有duty那个字段啊,你直接添加字段是不可以的,你得先重新设置一下数据库的结构啊
      

  7.   

    sql.add('INSERT into enter(date,number,duty,re) VALUES(:pmdate,:pmnumber,:pmduty,:pmre)');不行就换个参数名称
      

  8.   

    不应该吧,不行就把参数全写上,不过有的参数值不允许为空,注意一下,
    'INSERT into enter(id,date,number,duty,re...)...