我需要把数组中的数据插入到数据库中,数组的长度可变,每一个值对应数据库里的一个字段,我该怎么写?谢谢各位大侠

解决方案 »

  1.   


    tmp:='insert into 表名 values(';
    for i :=0 to 数组长度-1  do 
    begin
      if i=0 then 
        tmp:=tmp+''''+a[i]+''''
      else
        tmp:=tmp+','+''''+a[i]+'''';
    end;
    tmp:=tmp+')';
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add(tmp);
    adoquery1.execsql;
    //试试看就是要把这个sql语句写好就可以拉
      

  2.   

    insert into tablename(fieldname1,fieldname2,...)
    values(array1[0],array1[1],..)
    你也可以使用查询参数来实现
    var 
     sSql: string;
    sSql := 'insert into tablename(fieldname1,fieldname2,...)'
    sSql := sSql+ 'values(:param1,:param2,...)';
    with Query1 do
    begin
      close;
      Sql.clear;
      Sql.open;
      ParamsByName('param1').asdatatype := array1[0];//这里要将字段的类型和数组成员的类型一致;
      ... 
    end