BDE有批量更新,ADO好像没有。adoquery1.post只能在EDIT/APPEND/Insert之后调用,而不能在DELETE后调用。当你没有别的办法的时候,考虑NRID的想法,界面上增加一个ClientDataSet1:TClientdataset,在增加DataSetProvider1: TDataSetProvider;;属性设置:ClientDataSet1.Provider := DataSetProvider1;DataSetProvider1.DataSet := ADOQuery1;DataSource1.DataSet := ClientDataSet1;打开数据ADOQuery.sql.text := 'select * from ...';ClientDataSet1.Close;ClientDataSet1.Open;//然后对ClientDataSet进行任何更改,只要不掉呀ClientDataSet.Applyupdates(-1),那么数据变更就不会提交到数据库。