begin
    with DatamoduleADO.adoquery1 do
    begin
    sql.clear;
    sql.Add('insert into Lend(code,outdate,number,sum)'+
      'values(:code,:outdate,:number,:sum)');
    parameters.parambyname('code').value:= ComboBox1.text;
    parameters.parambyname('outdate').value:=datetostr(now());
    parameters.parambyname('number').value:=number.Text;
    parameters.parambyname('sum').value:=TotalEdit.text ;
    execsql;
    end;
我写了以上的插入语句,编译没错,运行的时候提示插入语句错误,然后错误提示停在execsql这句.
那位同志帮我看看啊,我改了很多次都不行.
其中code,outdate,number,sum都是文本型,数据库是access.

解决方案 »

  1.   

    楼主,看你上面的语句没有错误呀!并且我按照你上面的内容试了一下,我自己建了一个新的表,插入记录完全可以看到。我想可能原因是由于你的表中有主键和非空关系,索引及记录重复造成的。也可能是楼主你的ADO太旧了,更新一下ADO2.8,也可能是ACCESS连接不支持造成的。
      

  2.   

    我都试啦 还是不行
    能不能帮我改成用ADOTable插入记录,其实我以前没用过delphi的,现在只是帮朋友修改一下程序,因为不熟,所以用起来很别扭,先谢了~~~~~
      

  3.   

    我不太清楚了,我用尝试了许多种方法都是可以的。
    1、adoquery,adotable 
    首先打开记录 adoquery.open
    然后adoquery.append/insert 
    再adoquery.fieldbyname('字段名称').asstring := '字段值'
    adoquery.post
    2.sql := format('insert into table(col1,coln) values(''%s'',%d)',['字符',整数])
    adoquery.sql := sql;adoquery.executesql
    3.就你说的参数调用啦。
    你试一下升级jet4sp5,你可以试一下连接sql server试一下。看看是那个的问题。还有就是升级一下delphi7.