要求是这样的,我现在有一个编号ID,要对ID输入N次数据量
后台为:字段分别为ID,TESTRESULT,ACCOUNT,即表示编号,测试值,测试次数.
界面为:edt1(表示ID),(edit1,edit2,.....edit7)表示7个测试值,button1(表示动作),
请问怎么用数组的形式添加数据到数据库中,用button1一次性提交到数据库中
procedure tform1.button1click();
var
  i,k:integer;
  test:array [1..7] of integer;
begin
  if k<=7 then
  begin
  test[1]:=edit1.text;
  test[2]:=edit2.text;
   ....
  for i:=0 to k do
  begin
    with adoquery1 do
    begin
    close;
    sql.clear;
    sql.add('insert into table(ID,TESTRESULT,ACCOUNT)');
    sql.add('values('''+edt1.text+''','''+array[i]+''','''+inttostr(i)+''')');
    prepared;
    execsql;
    end;
  end;
  end
  else
  .......
end;

解决方案 »

  1.   

    下面是一个二维数组的保存
    不知道有用没。寒
    insert into wk_RealTimeStepData values
    (:x1,:x2,:x3,:x4,:x5,:x6,:x7,:x8,:x9,:X10,
    :x11,:x12,:x13,:x14,:x15,:x16,:x17,:x18,:x19,:X20,
    :x21,:x22,:x23,:x24,:x25,:x26,:x27,:x28,:x29,:X30,
    :x31,:x32,:x33,:x34,:x35,:x36,:x37,:x38,:x39,:X40,
    :x41,:x42,:x43,:x44,:x45,:x46,:x47,:x48,:x49,:X50,
    :x51,:x52,:x53,:x54,:x55,:x56,:x57,:x58,:x59,:X60,
    :x61,:x62,:x63,:x64,:x65,:x66,:x67,:x68,:x69,:X70,
    :x71,:x72,:x73,:x74,:x75,:x76,:x77,:x78,:x79,:X80)procedure TFrm_WeatherHistory.SaveDate();
    Var
    iLoop,jLoop:Integer;
    begin
       For iLoop:=0 to 23 do
       begin
         For jLoop:=0 to 79 do
         begin
           if (jLoop=79) or (jLoop=77) then
            ADOQuery2.Parameters[jLoop].Value:=Date
           else
            ADOQuery2.Parameters[jLoop].Value:=CaptyDateArray[iLoop,jLoop];
         end;
         ADOQuery2.ExecSQL;
       end;
    end;
      

  2.   

    据我所知可以用分号隔开多条SQL语句一次执行,没环境测试请见谅。