???????????
你的str在哪里执行了?????
你用的是table控件,而又想用sql语句来插入????????????
建议用
with form1.table1 do
begin
  insert;
  fieldbyname(field).asstring:=val;
  post;
end;来进行插入

解决方案 »

  1.   

    即使使用query,那么t_csgl('+field+')  query也不会认识  
      

  2.   

    : qiubolecn(来自差生市) 的方法是对的 我使用了可以的
    但是
    要删除呢?我用了好几种方法就是不行
    谁教教我吧
      

  3.   

    用 query 
    with query do
    begin
      close ;
      sql.clear ;
      sql.add('insert into....') ;
      ExecSQL ;
    end;
      

  4.   

    如果要删除如果是用table就必须将当时记录移动到(或定位locate)要删除的记录上再调用delete;post;
    如果是用query则要确定唯一标识
    比如我们认为 field为唯为标识,值为val
    则用语句delete from table where field=val;
      

  5.   

    procedure Tadd_Form.add (field:string;val:string);
    begin
      with Query do
      begin
        Close ;
        //删除
        Sql.text := 'delete from t_csgl where '+Field+'="'+Val+'"';
        execSql ;
        //新增
        Sql.text := 'Insert into t_csgl ('+Field+') values("'+Val+'")';
        execSql ;
      end ;
    end ;
      

  6.   

    使用TTable控件进行删除操作
    procedure Tadd_form.del(field:string ;val:string) ;
    begin
       if table1.locate(Field ,[Val],loCaseInsensitive) then //查找匹配记录
          Table1.delete ;
    end ;