Delphi ADO数据操作封装类
- {
- 将数据集操作方面的东西全部封装成一个单独的类
- TcustomAdoDataSet是TadoQuery、TadoTable、TadoDataSet、TadoCommand的公共祖先类
- 应尽量使用TadoDataSet和TadoCommand类
- }
- unit untOpeDataSet;
- interface
- uses
- 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.
Delphi ADO数据操作封装类的更多相关文章
- Android 常用数据操作封装类案例
1.DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作 package com.example.utils; import android.content.Conte ...
- 初始ADO.NET数据操作
以下介绍直接来源与百度百科,介绍十分全面和详细,作为小菜的我们没有理由不看完这些枯燥的介绍原有: ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于 ...
- ADO.NET访问Access(文本数据库)数据操作(CRUD)
1,ADO.NET访问Access(文本数据库)数据操作(CRUD) 2,DatabaseDesign 文本数据库Northwind.mdb 3,/App_Code 3.1,/App_Code/DBC ...
- ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据
ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- C# 数据操作系列 - 2. ADO.NET操作
0.前言 在上一篇中初略的介绍了一下SQL的基本写法,这一篇开始我们正式步入C#操作数据库的范围.通过这一系列的内容,我想大家能对于数据库交互有了一定的认识和基础.闲话不多说,先给大家介绍一个C#操作 ...
- 编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类
返回本章节 返回作业目录 需求说明: 继续完善英雄信息系统,将HeroAccess类中数据库连接相关代码独立出来,并将其封闭成数据库操作工具类DbConnection,便于管理和代码复用. 在Hero ...
- Delphi简单的数据操作类
unit MyClass; uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, VCL ...
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 我的DbHelper数据操作类
其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...
随机推荐
- angularJS 系列(五)--controller AS 语法
原文: http://www.cnblogs.com/whitewolf/p/3493362.html 这篇国外的文章也非常好: http://codetunnel.io/angularjs-cont ...
- 处理Easyui的Datagrid无法及时刷新问题
在Easyui中打打开窗口dialog控件,当做完修改操作之后,关闭dialog控件刷新Datagrid,有时候无法及时刷新. 1.JavaScript中的代码 function doEdit(){ ...
- android脚步---UI界面修改,关于activity中增加按钮和监听
增加按钮和监听,这个和上个不同在于,它不是在一个dialog里面,而是从新写了一个activity,因此需要先找到这个activity的入口. case R.id.checkframe: if (mC ...
- 可信执行环境(TEE)介绍
可信执行环境(TEE)是Global Platform(GP)提出的概念.针对移动设备的开放环境,安全问题也越来越受到关注,不仅仅是终端用户,还包括服务提供者,移动运营商,以及芯片厂商.TEE是与设备 ...
- HDU 1896 Stones(优先队列)
还是优先队列 #include<iostream> #include<cstdio> #include<cstring> #include<queue> ...
- 基于js脚本的单机黄金点游戏
题目描述 N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G( ...
- ionic常用命令记录
npm install -g ionic //安装ionic ionic lib update //更新www/lib/ionic 目录的文件,如有项目中有bower,此命令会运行bower upda ...
- Android开发:组播(多播)与广播
近期由于需要编写能够使同一局域网中的Android客户端与PC端进行自动匹配通信功能的程序,学习并试验了JAVA组播与广播的内容,记录一些理解如下: 一.组播(多播) 背景知识:组播使用UDP对一定范 ...
- C程序编译执行过程
C程序编译执行过程 认识C编译执行过程,是C学习的开端. 简单说C语言从编码编译到执行要经历一下过程: C源代码 编译---->形成目标代码,目标代码是在目标机器上运行的代码. 连接-- ...
- Freertos之系统配置
Freertos之系统配置 http://blog.csdn.net/liyuanbhu/article/details/7912170/
