没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Delphi 数据库处理
第一节 BDE、ADO、InterBase 和 dbExpress
Delphi 中处理数据库主要有两种方法,也就是 BDE、ADO,从 Delphi
6.0 开始还加入了一种 dbExpress 方法。 另外,Delphi 还提供了专门处
理 Borland 公司自己的数据库产品 InterBase 数据库的专门的方法。
BDE(Borland Databas Engine), 是 Delphi 中最古老的技术,从
delphi 2.0 加入 BDE 技术以后,一直是 Delphi 处理数据库的事实上的标
准。BDE 是一个基于驱动程序的体系结构,每一种数据格式或数据源都
有一种驱动程序来驱动相近的数据源。BDE 可以很好的支持现在最流行
的 ODBC API 方法,
ODBC 是一种 C/C++ 应用程序编程接口(API ),无论是对任何一种
客户/ 服务器关系型数据库管理系统(RDBMS ),还是最流行索引顺序
访问方法(ISAM)数据库(Jet、Foxpro), 都能很好的访问。
同时,由于 BDE 的驱动程序主要直接来自于第三方开发商,所以,
对于像 Oracle 这些非微软的数据库,执行效率上比较高。正是这些特点,
使 BDE 技术还是得到了很多数据库开发程序员的欢迎。
ADO 技术是微软提出来的处理关系型数据库和非关系型数据库的新
技术,它基于微软被称为 OLE DB 的数据访问模式,它是专门为了给大范
围商业数据源提供访问而设计的,包括传统的关系型数据表、电子邮件
系统、图形格式、Internet 资源等。ADO 所需内存更少,更适合大流量
和大事务量的网络计算机系统。
ADO 顶层有三个对象:Connection、Command、Recordset。
Connection 用以指定数据源,建立和数据源的连接。
Command 对象用以对数剧源执行指定的命令,可以接受 SQL 语句,
表和存储过程的名称,执行 SQL 查询,更新数据,插入纪录等。
Recordset 对象表示的是来自表或命令执行结果的记录全集,操纵
来自提供者的几乎所有数据。
由于 ADO 技术的迅速普及,从 Delphi 5.0 开始,加入了 ADO 技术
的模块,并逐步成为 Delphi 数据库设计的主流。但是,和 VB 的 ADODC 相
比,它还是有所不同的,在数据绑定上,它更多的吸收了 BDE 的特点,
以做到和原来的程序兼容,同时,它又可以接受标准 ADO 技术的各种属
性和方法,在接受这些属性和方法时,它是和数据绑定控件脱离的,当
然从某种意义上来说,这种方案提高了执行效率,给设计人员以更多的
选择。
dbExpress 是 Delphi 6.0 加入的最新的数据库模块,它不使用缓存,
可以快速浏览大量的数据,但是,不使用缓存就不能更改,所以它的标
准方式是只读的。它一个重要的特点是交叉平台,可以和 Linux 数据库
连接,速度相当快。
下面的讨论,将以 ADO 技术为主线,最后再说明 BDE 和 dbExpress
的应用方式。
第二节 ADO 面板的主要组件
ADO 面板一共有 7 个组件:
ADOConnection: 主要用于建立数据库的连接;
ADOdataSet:ADO 提取和操作数据库的主要数据集,可以直接连接
到数据库,也可以通过 ADOConnection 连接到数据库。
ADOtable:主要用以操作和提取单个基表的数据,可以直接连接到
数据库,也可以通过 ADOConnection 连接到数据库。
ADOquery:通过 SQL 语言提取数据,其连接数据库的方式和前两种
一样。
ADOStoredProc: 这个组件专门用于运行数据库中的存储过程。
ADOCommand:该组件用于运行一些 SQL 命令,这个组件可以和支持
数据集的组件一起使用,也可以直接从一个基表中提取一个数据集。
RDSConnection: 一个进程或一台计算机传递到另一个进程或计算
机的数据集合。
为了连接数据绑定控件,上述组件往往要和处于 Data Access 中的
Datasource 配合使用。
可以看出,和 VB 的 ADODC 不同的,Delphi 中解决同一个问题提供了
多种方案,看起来似乎增加了麻烦,但是却可以给程序员更大的自由空
间,便于设计出高效率的数据库程序来。
下面通过几个例子来说明 ADO 控件的用法。
第三节 ADOtable 组件
ADOtable、ADOdataSet、ADOquery 和 ADOStoredProc 都继承了同一
个父类 TCustomADODataSet,所以,在属性事件和方法上有很多相似的
地方,但它主要是针对数据库中的表进行操作。
ADO -〉ADOtable
属性:
Name='控件名'
ConnectionString='连接字符串'
可以通过点击右边的按钮,通过向导建立数据源。有时候需要
知道相对路径,可以用下面的方法找到程序当前的路径:
tpath:=ExtractFilepath(Application.Exename);
文件名:=Tpath+'..\data\Test.mdb'
表明数据库在当前程序上一层的 Data 文件夹下。
TableName='表名'
Active=true
这就激活了数据源,为了和绑定控件联系,要增加一个 DadaSource
控件。事实上,所有的绑定控件都是和 DadaSource 联系。
Data Access-〉DadaSource
属性:
Dataset=ADOtable.Name
加入绑定控件:
Data Controls-〉
DBgrid(表格)
属性
DadaSource='DadaSource.Name'
DBNavigator(导航条)
属性
DadaSource='DadaSource.Name'
运行一下可以看出关系
下面介绍一下 ADOtable 的一些重要的方法,这些方法大部分和 Table
是兼容的。
为了便于叙述,ADOtable 控件的 Name 定为 ADOtable1
1)移动指针
第一个: ADotable1.First;
最后一个: ADotable1.Last;
下一个: ADotable1.Next;
前一个: ADotable1.Prior;
2)从字段中取出数据
通过如下方法可以访问字段的值
ADOtable1.FieldValues['字段名']
ADOtable1.Field[索引值]
在读写字段的时候,又是根据需要可以加上强制类型转换
例如:
Edit1.text:=ADOtable1.Field[0].AsString;
用下面的方法可以去除字段的性质:
ADOtable1.fielddefs[索引值].name; 字段名
ADOtable1.fielddefs[索引值].Size; 字段大小
ADOtable1.fielddefs[索引值].Datatype; 字段属性
3)修改数据:
修改数据的时候,需要先建立 EDIT 方法,然后用 Post 方法才能真
正的写入。
ADOtable1.edit;
ADOtable1.FieldValues['姓名']:='王秀琴';
ADOtable1.post;
4)增加一条空纪录: ADOtable1.append;
新增纪录也可以用如下方法,在新增纪录的同时输入数据
ADOtable1.appendRecord(xxx,xxx,xxx,....);
5)删除当前纪录:ADOtable1.delete;
如果在 ADOtable1 的 OnBeforeDelete 方法中写下:
if messagedlg('确实要删除吗?',mtinformation,[mbyes,mbno],
剩余14页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 82
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功