{ 将数据集操作方面的东西全部封装成一个单独的类 TcustomAdoDataSet是TadoQuery、TadoTable、TadoDataSet、TadoCommand的公共祖先类 应尽量使用TadoDataSet和TadoCommand类 } unit untOpeDataSet;interfaceuses SysUtils, db, adodb, commonFunction, msg;type TopeDataSet = class public {修改已发生,但还没有得到应用的记录,在关闭窗口前应给予提示} function adoUpdatesPending(adoDataSet: TCustomAdoDataSet): boolean; {增加} procedure Append(adq: TadoQuery); {保存} procedure Save(adq: TadoQuery); {删除} procedure delete(adq: TadoQuery); {刷新数据集} procedure flash(adq: TadoQuery); {事务提交} procedure adqCommit(adq: TadoQuery); {查询数据集} procedure adqQuery(adq: TadoQuery; s: string); {带参查询数据集} procedure adqQueryPara(adq: TadoQuery; s: string; s1: variant); procedure adqQueryPara2(adq: TadoQuery; s: string; s1: variant; s2: variant); procedure adqQueryPara3(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant); procedure adqQueryPara4(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4: variant); {更新数据集} procedure adqExec(adq: TadoQuery; s: string); {带参更新数据集} procedure adqExecPara(adq: TadoQuery; s: string; s1: variant); procedure adqExecPara2(adq: TadoQuery; s: string; s1: variant; s2: variant); procedure adqExecPara3(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant); procedure adqExecPara5(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4: variant; s5: variant); procedure adqExecPara6(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4: variant; s5: variant; s6: variant); end;implementation{ TopeDataSet }function TopeDataSet.adoUpdatesPending( adoDataSet: TCustomAdoDataSet): boolean;var clone: TadoDataSet;begin clone := TadoDataSet.create(nil); try clone.clone(adoDataSet); //复制 clone.filterGroup := fgPendingRecords; //已得到修改但还没有得到应用的所有记录 clone.filtered := true; result := not(clone.bof and clone.eof); clone.close; finally clone.free; end;end;procedure TopeDataSet.adqCommit(adq: TadoQuery);begin try adq.Connection.CommitTrans; info(SopeSuccess, Scorp); except adq.Connection.RollbackTrans; info(SopeFail, Scorp, 16); end;end;procedure TopeDataSet.adqExec(adq: TadoQuery; s: string);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.ExecSQL;end;procedure TopeDataSet.adqExecPara(adq: TadoQuery; s: string; s1: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.ExecSQL;end;procedure TopeDataSet.adqExecPara2(adq: TadoQuery; s: string; s1, s2: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.ExecSQL;end;procedure TopeDataSet.adqExecPara3(adq: TadoQuery; s: string; s1, s2, s3: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.Parameters[2].Value := s3; adq.ExecSQL;end;procedure TopeDataSet.adqExecPara5(adq: TadoQuery; s: string; s1, s2, s3, s4, s5: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.Parameters[2].Value := s3; adq.Parameters[3].Value := s4; adq.Parameters[4].Value := s5; adq.ExecSQL;end;procedure TopeDataSet.adqExecPara6(adq: TadoQuery; s: string; s1, s2, s3, s4, s5, s6: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.Parameters[2].Value := s3; adq.Parameters[3].Value := s4; adq.Parameters[4].Value := s5; adq.Parameters[5].Value := s6; adq.ExecSQL;end;procedure TopeDataSet.adqQuery(adq: TadoQuery; s: string);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Open;end;procedure TopeDataSet.adqQueryPara(adq: TadoQuery; s: string; s1: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.open;end;procedure TopeDataSet.adqQueryPara2(adq: TadoQuery; s: string; s1, s2: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.open;end;procedure TopeDataSet.adqQueryPara3(adq: TadoQuery; s: string; s1, s2, s3: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.Parameters[2].Value := s3; adq.Open;end;procedure TopeDataSet.adqQueryPara4(adq: TadoQuery; s: string; s1, s2, s3, s4: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.Parameters[1].Value := s2; adq.Parameters[2].Value := s3; adq.Parameters[3].Value := s4; adq.Open;end;procedure TopeDataSet.Append(adq: TadoQuery);begin adq.Append;end;procedure TopeDataSet.delete(adq: TadoQuery);var i: integer;begin if adq.IsEmpty then abort; i := adq.RecNo; if queryInfo(SifDel, Scorp) then begin try adq.RecNo := i; adq.Delete; adq.UpdateBatch(); //批更新 except adq.CancelBatch(); info(SdelError, Scorp, 16); end; end;end;procedure TopeDataSet.flash(adq: TadoQuery);begin adq.Close; adq.Open;end;procedure TopeDataSet.Save(adq: TadoQuery);begin try adq.UpdateBatch(); info(Ssave_success, Scorp); except adq.CancelBatch(); info(Ssave_fail, Scorp, 16); end;end;end.procedure adqExec(adq: TadoQuery; s: string);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.ExecSQL;end;procedure adqExecPara(adq: TadoQuery; s: string; s1: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.ExecSQL;end;procedure adqQuery(adq: TadoQuery; s: string);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Open;end;procedure adqQueryPara(adq: TadoQuery; s: string; s1: variant);begin adq.Close; adq.SQL.Clear; adq.SQL.Text := s; adq.Parameters[0].Value := s1; adq.open;end;procedure Append(adq: TadoQuery);begin adq.Append;end;procedure delete(adq: TadoQuery);var i: integer;begin if adq.IsEmpty then abort; i := adq.RecNo; if queryInfo(SifDel, Scorp) then begin try adq.RecNo := i; adq.Delete; adq.UpdateBatch(); except adq.CancelBatch(); showmessage('Fail'); end; end;end;procedure flash(adq: TadoQuery);begin adq.Close; adq.Open;end;procedure Save(adq: TadoQuery);begin try adq.UpdateBatch(); showmessage('Success'); except adq.CancelBatch(); showmessage('Fail'); end;end;end. 相关文章: