在按保存按钮后,出现的错误如下:
    Project MDIAPP.exe raised exception class EListError with message 'List index out of
bounds(42)'.
    保存所调用的原代码:
    procedure TBM001Form.Posting; // 提交所有的内容
begin
  if ActionCD = 'N' then
  begin
    DecodeDate(now,year,month,day);
    DecodeTime(Now,Hour,Min,Sec,MSec);
    with DM.Querytemp1 do
    begin
      Close; // 如果是插入操作,执行 Insert操作
      SQL.Clear;
      SQL.Add('Insert into BusInfo(b_dossier_id,b_id,b_company,economy_type,');
      SQL.Add('b_runline,b_everyline,b_level,b_checkseat,b_saleseat,b_sequence,');
      SQL.Add('b_starttime,b_type,b_factype,b_instationdate,b_contractbgdate,');
      SQL.Add('b_contracteddate,b_buyfax,line_card,line_bgdate,line_eddate,');
      SQL.Add('line_cardbgdate,line_cardeddate,b_incityid,b_incitybgdate,');
      SQL.Add('b_incityeddate,b_runid,b_runlevel,b_runbgdate,b_runeddate,');
      SQL.Add('b_secproteddate,b_yecensorddate,b_insurbgdate,b_iscontract,');
      SQL.Add('b_ownername,b_ownersex,b_owneriditify,b_owneraddress,b_ownerphone1,');
      SQL.Add('b_ownerphone2,b_other,oper,optime)');      SQL.Add('values(:b_dossier_id,:b_id,:b_company,:economy_type,');
      SQL.Add(':b_runline,:b_everyline,:b_level,:b_checkseat,:b_saleseat,:b_sequence,');
      SQL.Add(':b_starttime,:b_type,:b_factype,:b_instationdate,:b_contractbgdate,');
      SQL.Add(':b_contracteddate,:b_buyfax,:line_card,:line_bgdate,:line_eddate,');
      SQL.Add(':line_cardbgdate,:line_cardeddate,:b_incityid,:b_incitybgdate,');
      SQL.Add(':b_incityeddate,:b_runid,:b_runlevel,:b_runbgdate,:b_runeddate,');
      SQL.Add(':b_secproteddate,:b_yecensorddate,:b_insurbgdate,:b_iscontract,');
      SQL.Add(':b_ownername,:b_ownersex,:b_owneriditify,:b_owneraddress,:b_ownerphone1,');
      SQL.Add(':b_ownerphone2,:b_other,:oper,:optime)');      Parameters.Items[0].Value := BDId.Text;
      Parameters.Items[1].Value := BId.Text;
      Parameters.Items[2].Value := Comcb.Text;
      Parameters.Items[3].Value := Ecocb.Text;
      Parameters.Items[4].Value := Linecb.Text;
      Parameters.Items[5].Value := Ebscb.Text;
      Parameters.Items[6].Value := BLevelcb.Text;
      Parameters.Items[7].Value := CSeat.Text;
      Parameters.Items[8].Value := SSeat.Text;
      Parameters.Items[9].Value := BSeq.Text;
      Parameters.Items[10].Value := StartTime.Text;
      Parameters.Items[11].Value := BTypecb.Text;
      Parameters.Items[12].Value := FTypecb.Text;
      Parameters.Items[13].Value := InStationdate.DateTime;
      Parameters.Items[14].Value := ConbgDate.DateTime;
      Parameters.Items[15].Value := ConedDate.DateTime;
      Parameters.Items[16].Value := Buyfax.Text;
      Parameters.Items[17].Value := LCardid.Text;
      Parameters.Items[18].Value := LCbgdate.DateTime;
      Parameters.Items[19].Value := LCeddate.DateTime;
      Parameters.Items[20].Value := LACbgdate.DateTime;
      Parameters.Items[21].Value := LACeddate.DateTime;
      Parameters.Items[22].Value := InCityid.Text;
      Parameters.Items[23].Value := InCitybgdate.DateTime;
      Parameters.Items[24].Value := InCityeddate.DateTime;
      Parameters.Items[25].Value := Runid.Text;
      Parameters.Items[26].Value := LevelCheckcb.Text;
      Parameters.Items[27].Value := Runbgdate.DateTime;
      Parameters.Items[28].Value := Runeddate.DateTime;
      Parameters.Items[29].Value := SPeddate.DateTime;
      Parameters.Items[30].Value := BYCdate.DateTime;
      Parameters.Items[31].Value := Insubgdate.DateTime;
      Parameters.Items[32].Value := Insueddate.DateTime;
      Parameters.Items[33].Value := IsDisCon.Text;
      Parameters.Items[34].Value := BOwner.Text;
      Parameters.Items[35].Value := sex.Text;
      Parameters.Items[36].Value := BDID.Text;
      Parameters.Items[37].Value := Address.Text;
      Parameters.Items[38].Value := Phone1.Text;
      Parameters.Items[39].Value := Phone2.Text;
      Parameters.Items[40].Value := BDMemo.Text;
      Parameters.Items[41].Value := MainForm.Auser.UserName;
      Parameters.Items[42].Value := IntToStr(year) + '年' +  IntToStr(month) + '月'
       + IntToStr(day) + '日' + IntToStr(Hour) + '时' + IntToStr(Min) + '分' +
       IntToStr(Sec) + '秒';
      prepared := true;
      ExecSQL;
    end;
end;

解决方案 »

  1.   

    是不是日期转化的函数错了,我一般用
    var
     Year, Month, Day, DOW: Word;
     date:tdatetime;
     date:=DateTimePicker1.DateTime;
      DecodeDateFully(Date, Year, Month, Day, DOW);
      

  2.   

    Project MDIAPP.exe raised exception class EListError with message 'List index out of
    你的参数和Parameters赋值个数超出了你的实际个数
    0到42是43个,你写的:是42个
      

  3.   

    用数据感知控件dbgrid,dbedit多好呀
      

  4.   

    建议兄弟改进一下自己的编程习惯
    上边的兄弟rockswj说得对
      

  5.   

    是少了一个字段,但是添加上去,还是出现相同的错误!!!(我会考虑用数据感知控件,但是我想先解决这个问题)
    Project MDIAPP.exe raised exception class EListError with message 
    'List index out of bounds(42)'
    添加后字段为:
    SQL.Add('Insert into BusInfo(b_dossier_id,b_id,b_company,economy_type,');
    SQL.Add('b_runline,b_everyline,b_level,b_checkseat,b_saleseat,b_sequence,');
    SQL.Add('b_starttime,b_type,b_factype,b_instationdate,b_contractbgdate,');
    SQL.Add('b_contracteddate,b_buyfax,line_card,line_bgdate,line_eddate,');
    SQL.Add('line_cardbgdate,line_cardeddate,b_incityid,b_incitybgdate,');
    SQL.Add('b_incityeddate,b_runid,b_runlevel,b_runbgdate,b_runeddate,');
    SQL.Add'b_secproteddate,b_yecensorddate,b_insurbgdate,b_insureddate,b_iscontract,');
    SQL.Add('b_ownername,b_ownersex,b_owneriditify,b_owneraddress,b_ownerphone1,');
    SQL.Add('b_ownerphone2,b_other,oper,optime)');