我用如下代码把数组中的数据存入Access数据库中
var
  I:Integer;
for i:=0 to length(array1)-1 do
begin
  ADOTable1.append;
  ADOTable1.FieldValues['数量']:=array1[I];   //数组中大概3千条数据
  ADOTable1.FieldValues['年龄']:=array2[I];
  ADOTable1.FieldValues['身高']:=array3[I];
  ADOTable1.Post;
end;可速度太慢。
在另一个帖子上该问题没得到解决。
各位高手能否提供一段SQL语句。

解决方案 »

  1.   

    呵呵 楼主真是有耐性啊3000条记录,用循环存入Access肯定不快了,再说你刚才说了你的机器配置不高,慢是很正常的。用sql语句能提高速度吗?? 3000次的调用某条sql语句,就算有这样的语句,我估计也不快。
      

  2.   

    用存储过程看看能快多少
    for i:=0 to length(array1)-1 do
    begin
    ADOStoredProc1.Parameters.Refresh;
    adostoredproc1.parameters.ParamByName('@num').Value:=array1[I];   
    adostoredproc1.parameters.ParamByName('@age').Value:=array2[I];
    adostoredproc1.parameters.ParamByName('@height').Value:=array3[I];
    adostoredproc1.ExecProc;
    end;
      

  3.   

    不知道Access的存储过程怎么写?
      

  4.   

    这个,不要用ADOTABLE1了,因为你只是insert
    在此时根本不需要返回数据所以
    你可以直接用SQL insert
    strSQL:='insert into tableName(Fieldname1,fieldname2,fieldname3)values(''%s'',''%s'',''%s'')';for i:=0 to length(array1)-1 do 
    begin
      strSQLInsert:=format(strSQL,[array1[I],array2[I],array3[I])); 
      adoconnection.execute(strSQLinsert,iRecord,[]);
    end;
      

  5.   

    我忘了说一条的,我的数组是动态数组。lwk_hlj(阿凯(CSDN第一铁公鸡横空出世)) :
    你的方法好像对动态数组不行把?
      

  6.   

    为避免sql注入还是不要拼凑sql的好
    用parameters取代拼凑sql可以很简单地避免这一问题
      

  7.   

    因为不用返回值,所以建议用TADOCommand
    for i:=0 to length(array1)-1 do 
    begin
      TADOCommand.CommandText:='insert into tableName('数量','年龄','身高')values(array1[I],array2[I],array3[I])';
      TADOCommand.execute;
    end;
      

  8.   

    我忘了说一条的,我的数组是动态数组。lwk_hlj(阿凯(CSDN第一铁公鸡横空出世)) :
    你的方法好像对动态数组不行把?我的那里不行了?
    仔细想想
    =======================================strSQL:='insert into tableName(Fieldname1,fieldname2,fieldname3)values(''%s'',''%s'',''%s'')';for i:=low(array1) to High(array1) do 
    begin
      strSQLInsert:=format(strSQL,[array1[I],array2[I],array3[I])); 
      adoconnection.execute(strSQLinsert,iRecord,[]);
    end;
    这还是行的话,火大了!
      

  9.   

    lwk_hlj(阿凯(CSDN第一铁公鸡横空出世)) 不用生气,
    帮助菜鸟就是了,在说不考虑问题就直接说出答案也是小孩子的毛病,忍耐一下吧
      

  10.   

    to godnoloveihavelove(快感):
    你说菜鸟我同意,但你说我没考虑,这句话欠妥吧?
    对SQL我是一窍不通,可lwk_hlj(阿凯(CSDN第一铁公鸡横空出世)) 给我的代码我可以好好的看了,并且查了在线帮助。
    你不帮忙,请你不要说风凉话,我没你资质好(生来就会),可我现在学不行么?(本来真不想说的)正被弄得焦头烂额的,碰到说风凉话的,真气人