with data_bb.Query1 do
    begin
      Close;
      sql.Clear;
      sql.Add('insert into tmp(材料名称'+str2+') values (str1)');
      execsql;
    end;表的字段全部是字符型的,
str1:='1,2,3,4'结果出错
查询值的数目与目标字段中的数目不同我想是将str1作为一个字段了吧,但怎样写这个str1语句呢。
字段长度是动态生成的,所以不好用参数的方法

解决方案 »

  1.   

    sql.Add('insert into tmp(材料名称'+str2+') values (str1)');
    改为:
       sql.text:='insert into tmp(材料名称'+str2+') values('+QuotedStr(str1)+')';
      

  2.   

    sql.Clear;
    str3:='insert into tmp(材料名称' + str2 + ')' +'values(' + str1 + ')';
    sql.add(str3);
      

  3.   

    sql.Add('insert into tmp(材料名称'+str2+') values (str1)');
    改为:
       sql.text:='insert into tmp(材料名称'+str2+') values("'+str1+'")';
      

  4.   

    with data_bb.Query1 do
        begin
          Close;
          sql.Clear;
          sql.Add('insert into tmp(材料名称'+str2+') values (:str1)');
          execsql;
          ParambyName('str1').AsString := str1;
        end;
      

  5.   

    with data_bb.Query1 do
        begin
          Close;
          sql.Clear;
          sql.Add('insert into tmp(材料名称'+str2+') values ('+str1+')');
          execsql;
        end;
      

  6.   

    sql.Add('insert into tmp(材料名称'+str2+') values ('''+str1+''')');