当前位置:首页 » 数据仓库 » delphi数据库模块
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

delphi数据库模块

发布时间: 2022-11-29 21:26:23

❶ delphi和sql数据库怎么开发登录模块

下面的Ulogin 是我的项目中的一个单元,其实不管连哪种数据库,道理都是一样的, 下面的例子是主窗体在FormCreate 事件中首先打开Flogin. Flogin中判断用户,如果成功则到Fmain,反之提示错误.

lz看下,不明白的地方,hi我.

-----------------------------------

unit Ulogin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;

type
TFlogin = class(TForm)
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
username: TEdit;
password: TEdit;
Q: TADOQuery;
procere Button2Click(Sender: TObject);
procere FormClose(Sender: TObject; var Action: TCloseAction);
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Flogin: TFlogin;

implementation
uses Umain;

{$R *.dfm}

procere TFlogin.Button2Click(Sender: TObject);
begin
Fmain.Close;
Flogin.Close;
end;

procere TFlogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procere TFlogin.Button1Click(Sender: TObject);
begin
//Login
if ((trim(username.Text)='') or (trim(password.Text)='')) then
begin
Application.MessageBox('用户名或者密码不允许为空','警告',MB_ICONWARNING);
exit;
end;
try
Q.Connection:=Fmain.conn;
Q.SQL.Text:='select password,teamname,fullname from userinfo where username='''+username.Text+'''';
Q.Open;
except
on E: Exception do
begin
Application.MessageBox(PChar('数据库错误:'+E.Message),'错误',MB_ICONERROR);
exit;
end;
end;
if Q.RecordCount=0 then
begin
Application.MessageBox('用户名不存在','警告',MB_ICONWARNING);
exit;
end;
if (password.Text<>Q.Fields[0].AsString) then
begin
Application.MessageBox('用户密码错误','警告',MB_ICONWARNING);
exit;
end;
Fmain.username:=username.Text;
Fmain.teamname:=Q.Fields[1].AsString;
Fmain.fullname:=Q.Fields[2].AsString;
Fmain.sb.Panels[1].Text:=username.Text+'['+Fmain.fullname+','+Fmain.teamname+']';
Q.Close;
close;
end;

end.

❷ delphi7.0和SQL数据库怎么开发三层数据库登录模块

建议你学习一下 RemoteObjects DataAbstract ,支持多种数据库格式。

学习成本 也不高。

大体架构你可以看看例子。
大概讲解一下。
服务端:
DataMole单元:
TDADriverManager,TADODriver 管理的是 数据库引擎驱动部分,如ADO连接
TDAconnectionManager 管理的是连接参数,双击打开,可以设置数据库连接参数。
其他的 是服务端的一些Session 等管理。

Form窗口:
TROhttpserver 配置的是 服务端采用http协议通讯,并开通该服务,并指定端口等。。。

Impl模块窗口:
TDashcema 配置各种数据库连接类型,如table,procere ,query,command 等等。 可以定义各种数据库连接对象。
TDAstreamer 用于将各种封装的数据通过该流对象压缩成 二进制或者XML供客户端调用。

客户端 很简单
Trohttpchnannel 实现http服务端连接
Troservice... 服务名称
TDataAdapter 数据库与服务端连接器
TmemDAtatalbe 数据表

❸ Delphi数据库系统开发完全手册的内容简介

本书分三大部分,第一部分为Delphi编程篇,主要介绍使用Delphi开发数据库系统必须掌握的技术,这些技术最大限度地与实际项目案例相结合。第二部分为SQL Server应用篇,主要介绍SQL Server数据库安装、管理、开发及维护的相关技术。第三部分为实例开发篇,精选了当前应用最广泛的数据库管理系统,内容包括定制自己的工作环境、物流配送管理系统、仓库管理系统、销售管理系统、工资管理系统、人事管理系统、客户管理系统、固定资产管理系统和财务凭证管理系统。这些系统即可以独立使用,也可作为企业综合管理系统的重要组成部分。本书附有配套光盘。光盘提供了书中所有案例的全部源代码,所有源代码都经过精心调试,在Windows XP和Windows 2000下全部测试通过,保证能够正常运行。本书内容精练、重点突出、实例丰富,是各级程序开发人员必备的和不可多得的参考书,本书也非常适合大中专院校师生学习参考。 图书目录 实例开发篇第15章定制自己的工作环境25315.1代码编辑器常规选项设置25315.2代码编辑器源文件选项设置25515.3代码编辑器显示状态设置26115.4语法着色26215.5代码智能选项设置26415.6环境选项参数设置26515.7窗体和组件设置26715.8个性化开发环境设置268第16章Delphi 7在物流配送中的应用27116.1物流配送管理系统概述27116.1.1开发背景27116.1.2运行环境27116.2系统调查27116.2.1手工流程27116.2.2需求分析27216.3系统分析27216.3.1系统功能27216.3.2业务流程27316.4数据库设计27316.4.1数据库概念设计27316.4.2数据库逻辑结构设计27316.5处理过程分析27716.5.1配送审核处理过程分析27716.5.2配送开票处理过程分析27716.6主程序设计27816.6.1实现目标27816.6.2建立主窗体27916.6.3程序相关代码28016.7数据模块设计28116.8程序设计与编码28216.8.1配送申请管理设计28216.8.2配送审核管理设计28816.8.3配送开票管理设计29116.8.4配送查询管理设计29616.8.5系统登录程序设计29816.9疑难问题分析解决30016.9.1如何在TImageList中存储大图标30016.9.2如何实现动态查询30116.9.3如何去除重复行30116.9.4动态创建窗体30216.9.5如何实现配送开票查询30316.9.6如何将表格中某些列设置为只读30416.10程序调试及错误处理30516.10.1程序调试30516.10.2异常处理30716.11程序设计清单30816.12技术、经验总结30816.12.1技术总结30816.12.2经验总结30916.13程序的打包与发行309第17章Delphi 7在仓库中的应用31217.1仓库管理系统概述31217.1.1仓库管理系统简介31217.1.2系统功能描述31217.2系统调查31317.3需求分析31317.4系统设计31417.4.1系统流程图31417.4.2业务流程31517.5数据库设计31517.5.1数据库概念设计31517.5.2数据库逻辑结构设计31517.5.3数据字典31717.6处理过程分析31717.6.1商品入库处理过程分析31717.6.2商品出库处理过程分析31817.7主窗体设计31817.8数据模块设计31917.9程序设计与编码31917.9.1商品入库管理设计31917.9.2商品出库管理设计32617.9.3商品库存查询设计32817.10疑难问题分析解决32917.10.1使用TADODataSet组件时应该注意的问题32917.10.2双击DBGrid表格,如何显示当条数据详细信息33017.10.3如何判断数据库中是否有相同字段的数据33117.10.4判断进价、批发价、零售价是否输入合法33217.11程序测试常见错误解决33217.12程序设计清单33517.13技术、经验总结33617.13.1技术总结33617.13.2经验总结336第18章Delphi在销售中的应用33718.1销售管理系统概述33718.1.1开发背景33718.1.2销售管理系统简介33718.1.3系统功能描述33718.2系统分析33818.2.1系统规划33818.2.2系统流程图33918.2.3业务流程33918.3数据库设计33918.3.1数据库概念设计33918.3.2数据库逻辑结构设计34018.4主窗体设计34118.5状态栏设计34218.6数据模块设计34318.7销售报表设计34318.8程序设计与编码34618.8.1商品销售管理设计34618.8.2销售退货管理设计35218.8.3客户订货管理设计35518.8.4销售查询管理设计35818.9疑难问题分析解决36018.9.1如何防止单击TBitBtn按钮时关闭模式窗体36018.9.2使用非数据控制组件显示和浏览数据36118.9.3在编辑框中只允许输入数字36118.9.4按Enter键控制焦点的移动36118.9.5在销售商品时,实现订单销售36218.9.6如何实现超期应收款查询36218.10程序设计清单36218.11技术、经验总结36318.11.1技术总结36318.11.2经验总结36418.12系统的编译与发行364第19章Delphi在工资中的应用36519.1工资管理系统概述36519.1.1系统任务36519.1.2设计目标36519.2需求分析36519.2.1业务调查36519.2.2系统规划36619.3数据库设计36619.3.1数据库概念设计36619.3.2数据库逻辑结构设计36719.3.3数据字典36819.4处理过程分析36919.4.1工资发放处理过程分析36919.4.2工资调整处理过程分析36919.5主窗体设计36919.6菜单设计37019.7数据模块设计37119.8窗体模板设计37119.9程序设计与编码37219.9.1员工基本工资管理设计37219.9.2员工浮动工资管理设计37719.9.3工资发放管理设计37919.9.4员工工资调整管理设计38219.10疑难问题分析解决38619.10.1使用TRVSystem组件编写报表38619.10.2如何控制表格中焦点的移动38719.10.3编写简洁、灵活的代码38719.10.4如何限制表格中某列的输入38819.10.5员工工资核算38819.10.6查询上月余额38919.11软件测试38919.12程序设计清单39019.13技术、经验总结39019.13.1创建视图39019.13.2经验总结392第20章Delphi在人事中的应用39320.1人事管理系统概述39320.1.1开发背景及意义39320.1.2系统目标39320.2系统分析39320.2.1系统规划39320.2.2系统流程图39520.3数据库设计39520.3.1数据库概念设计39520.3.2数据库逻辑结构设计39520.4处理过程分析39620.4.1人员档案处理过程分析39620.4.2人员调动处理过程分析39720.5主窗体设计39720.6数据模块设计39820.7程序设计与编码39820.7.1员工信息管理设计39820.7.2添加人员档案程序设计39920.7.3修改人员档案程序设计40220.7.4删除人员档案管理设计40720.7.5员工调动管理设计40820.8疑难问题分析解决0.8.1如何将数据表中的字段值添加到下拉列表框中0.8.2如何防止用户改变下拉列表框中的当前数据41220.8.3隐藏窗体的标题栏41320.8.4保存的实现方法探究41320.8.5图片的切换41420.8.6控制按钮是否可用41420.9程序调试与错误处理41520.10程序设计清单41620.11技术、经验总结41720.11.1技术总结41720.11.2经验总结41820.12程序的编译与发行418第21章Delphi在客户中的应用41921.1客户管理系统概述41921.1.1客户管理系统简介41921.1.2系统功能描述41921.2系统分析41921.2.1系统规划41921.2.2系统流程图42121.2.3业务流程42121.3数据库设计42121.3.1数据库概念设计42221.3.2数据库逻辑结构设计42221.4处理过程分析42321.4.1客户基础信息处理过程分析42321.4.2客户信息呼叫处理过程分析42421.5主窗体设计42421.6菜单设计42621.7工具栏设计42721.8数据模块设计42821.9程序设计与编码42921.9.1客户区域管理程序设计42921.9.2客户级别管理程序设计43421.9.3客户基础信息管理程序设计43721.9.4客户信息呼叫管理程序设计44321.9.5客户反馈查询管理程序设计44821.10疑难问题分析解决45121.10.1如何将TDBGrid中的内容居中显示45121.10.2如何更改鼠标指针形状45221.10.3如何在控件失去焦点时进行内容检查45221.10.4如何防止向数据表中插入重复数据45221.10.5在表格中输入商品数量,如何自动计算金额45321.10.6利用掩码编辑控件格式化字符串45321.11程序调试及错误处理45421.12程序设计清单45721.13技术、经验总结45721.13.1技术总结45721.13.2经验总结458第22章Delphi在固定资产中的应用45922.1固定资产管理系统概述45922.1.1开发背景及意义45922.1.2系统目标45922.2系统分析46022.2.1系统规划46022.2.2系统流程图46022.2.3业务流程46122.3数据库设计46122.3.1数据库概念设计46122.3.2数据库逻辑结构设计46122.3.3数据字典46222.4处理过程分析46322.4.1添加固定资产处理过程分析46322.4.2计提折旧处理过程分析46322.5主窗体设计46322.6图像列表设计46422.7数据模块设计46522.8程序设计与编码46622.8.1资产类别程序设计46622.8.2添加固定资产程序设计46722.8.3修改固定资产程序设计47122.8.4计提折旧程序设计47422.8.5数据备份程序设计47822.8.6系统初始化程序设计47922.9疑难问题分析解决48022.9.1如何创建存储过程48022.9.2数据还原的实现48122.9.3查看SQL Server的备份文件48122.9.4利用循环语句清空界面数据48222.9.5固定资产基本概念48222.9.6固定资产计算公式48322.10程序测试48322.11程序设计清单48422.12技术、经验总结48522.12.1技术总结48522.12.2经验总结48622.13系统的编译与发行486第23章Delphi在财务凭证管理系统中的应用487

❹ delphi如何实现窗口添加数据到数据库里

你最好使用数据库感知控件,DBEDIT等等,如果你使用普通控件,要多写一些代码,看样子你对数据库操作不太熟悉,应该多读一些基础的书。
1.你如果用数据库感知控件,保存的时候用post直接提交。如果用普通控件,你需要把edit.text值赋给字段再post提交
2.DM做公用数据模块,你需要在调用的子窗里引用就行了,uses DM;
3,关于“怎样做才能把子窗口的数据录到父窗口的DBGrid里?”这个问题,一般这样解决,在子窗体做一个向数据库里录入的功能,保存以后,父窗体重新查询一下。

❺ 也教教我如何用delphi作数据库管理系统吧

先想想你要达到什么目的。把过程写下来。构建你的数据结构(这个是关键,数据结构决定你对数据查询、修改的难易程度)。
对着第二步,把每个模块写出来。
测试->修改直到一切达到你的要求.
这大概就是数据库管理系统的整个过程吧

❻ 用delphi做的程序如何连接SQL数据库应该怎么操作

1. 新建一个FORM。在控件栏找到ADO一栏,把里面的ADOConnection和ADOQuery两个各建立一个放在FORM里。这两个控件运行后是不可见的,所以你可以随便放在FORM的任何位置。然后再找到DATA ACCESS一栏,把它下属的DataSource控件拖一个放到FORM里。用这三个控件就可以建立连接了。

2.设置相关属性,首先我们设置ADOConnection,这个控件就是与数据连接的控件。双击它弹出配置窗口,单击BUILD..按钮,出现数据库链接属性窗口,ACCESS数据库就选择有个JET4.0什么的那个数据库,如果是本地的数据库可以在下拉列表选择服务器名称或者自己直接输入服务器名称(远程的直接输入IP即可),然后输入登录密码和选择数据库。设置完成点击测试连接,显示成功说明链接正常,单击完成退出设置。

3 ADOQuery这个控件是用SQL操作数据库的,在它的属性栏有个connection属性,点击它的下拉菜单选择刚刚建立好的ADOConnection1,DataSource控件则是存放结果的地方,把它的DataSet属性设置成ADOQuery1。这样我们就可以通过调用ADOQuery来对数据库进行操作了。

4 链接好数据库以后就可以对数据库进行操作了。最常见的用法是建立一个DBGRID,然后把他的connection属性选成我们的Datasource1。如果你想预先设置好SQL语句的话,在ADOQUERY的左边属性栏里的SQL栏,点那个三个点的省略号输入你想查询的SQL语句。然后ACTIVE属性设置成TRUE,这样一运行,在DBGRID里就会显示你的SQL查询结果了。

❼ delphi开发数据库,要用哪些组件

使用delphi自带的 bde 或者 ado 或者 IB ,常用的数据库开发都能对付。

❽ 想用delphi做一个远程数据库,MSSQL还是MYSQL好

MsSQL:比较稳定,如多不怕用盗版的话可以用;MYSQL:如果你的软件不是商业软件的话可免费使用;远程连接的话要注意安全性,MYSQL可以用SSL加密传输,msSQL远程连接用的不多,但是有方案说使用MSSQL存储过程执行SQL语句的方法(其他SQL语句都设置权限的不让执行,只通过执行存储过称,存储过程在执行普通SQL语句,并且传输给存储过程的参数要加密和验证)其远程连接安全性可达美国军方标准,但自己没有验证过,只是看到过;还有一种解决方案:如果你用DELPHI开发,可以用他提供的三层结构解决方案(远程数据模块),这样数据库就可以通过中间件连接了,不用直接对外网开放数据库端口。但是这样由于加入了中间件(远程模块部分)可能整个系统的稳定性会降低;

❾ delphi7.0和SQL数据库怎么开发三层数据库登录模块

呵呵,问了这么多次问题呀..

这个周末我应该可以把框架和基本功能搭建完毕了,到时候发给你.

这个分我也赚了吧.:)

❿ delphi SQL查询并显示

DBGrid组件是用来显示数据表的。

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],
0)=mrno then abort();
可以实现删除前的提示。

6)过滤
可以用如下的方法实现数据的过滤

在ADOtable1的OnFilterRecord方法中写下:
Accept:=(条件);

然后

ADOtable1.filtered:=true; 为实现过滤。
ADOtable1.filtered:=false; 为解除过滤。

7)指针在文件的头尾

指针在最后一条记录之后 ADOtable1.Eof
指针在第一条记录之前 ADOtable1.Bof

如此可以实现对数据库的遍历

form1.ADOtable1.first;
while not form1.ADOtable1.eof do
Begin
.......
form1.ADOtable1.next;
End;

8)此外, ADOtable组件还继承了ADO 中的RecordSet对象几乎
全部属性和方法,简述如下:

with adoTable1.Recordset do
begin

//属性
PageSize 一页所包含的记录数
PageCount 数据的页数
AbsolutePage; 当前记录所在页
AbsolutePosition; 当前记录的序号位置
BOF; 指针在第一个记录之前
EOF; 指针在最后一个记录之后

//方法
AddNew fieldList,Values; 创建新记录,其中fieldList为用数
组表示的字段名集,Values为用数组表
示的数据集。
Cancel; 取消上一步所作的修改
Update Fields,Values; 保存对当前记录所作的修改
Delete; 删除当前记录
Move(n); 移动n 条记录
MoveFirst; 移动到第一条纪录
MoveLast; 移动到最后一条纪录
MoveNext 移动到下一条纪录
MovePrevious 移动到上一条纪录
Requery; 通过从新执行对象所基于的查询,以
更新RecordSet 对象中的数据。
end;

使用Recordset 对象来处理数据集的数据,会发现数据帮定控件的指
针一般不会跟着移动,这实际上给设计者提供了另一个在后台快速处理数
据的方法。
附录:关于TActionList控件的使用

在Standard面板,提供了一个TActionList 控件,它集中了大部分按
钮的使用方法,可以简化按钮的设计。
方法:
调入TActionList,双击,可以看到一个面板,右键 -〉New Standard
Action 选择 Datasat下的适当的控制,可以选择多个。
以后加入的开关,只要在属性Action 中选择适当的项目就可以了,不
需要专门编程,实例见“ActionList应用”。

第四节 ADOQuery组件

和ADOtable组件一样,ADOquery继承了同一个父类TCustomADODataSet,
所以,上面说到的ADOtable属性事件和方法基本上是通用的,但它主要是
针对数据库中的SQL 命令进行操作。
下面主要说一下ADOquery特殊的地方。

1)SQL 属性
SQL 是TStrings类型的属性,包含了ADOquery组件要执行的SQL 命令,
是ADOquery最为重要的属性之一。
在应用程序中,需要调用Open方法或者ExecSQL 方法来执行在SQL 中
的命令。在设计阶段,可以利用属性编辑起来编写。
例如:
Width ADOquery do
Begin
//重新写入时,要关闭原来的查询
Close;
width SQL do
Begin
//因为Add是在原来的基础上加入,所以先清除原来的SQL命令
Clear;
Add('selsct 编号,姓名,奖金')
Add('From 奖金表')
End;
//执行SQL 命令
Open;
End;

查询命令也可以这样来写:

s1:='编号';
s2:='姓名';
s3:='金额';
with ADOquery1 do
begin
sql.Clear;
SQL.Add('select ');
SQL.Add(s1+','+s2+','+s3);
SQL.Add(' From 奖金 ');
execsql;
active:=true;
end;

效果是一样的。

第五节 ADOConnection 和 ADODataSet

虽然ADOTable和ADOQuery组件可以非常简单的连接数据库,但是当需
要更加精细的控制数据库的时候,往往需要应用ADO 更多的方法,我们知
道,支撑ADO 的主要由Connection,Command,Recordsrt三个对象组成,
对应的就有ADOConnection和ADOCommand控件,而Recordsrt对象属性和方
法,封装在ADODataSet中,同时ADODataSet本身,也具备和ADOtable组件
相同的对数据绑定控件控值的属性和方法。
这就大大提高了对数据库的控制能力。
在ADO 顶层有三个对象中Connection处在最顶层,用以指定数据源,
建立和数据源的连接。所以,ADOConnection必须和其它的数据控件连接
才有效,最常用的就是和ADODataSet配合。
下面首先介绍连接方法,然后再讨论其它的问题

1)ADOConnection的加入和连接

加入ADOConnection
属性:ConnectionString='连接字符串'

加入ADODataSat
属性:Connection='ADOConnection1' ..... (ADOConnection,Name)
CommandType=cmdtable ...使用表连接
CommandText 根据上面的选择,或选择表,或出现SQL 编辑框。
Active=True 激活。
加入DataSource
属性:Dataset=ADODataSat 完成连接,再连接数据绑定控件。

2)ADOConnection的重要属性和方法

属性:

a).Attributes
设置连接的数据库自动处理事务的能力
xCommitRetaining:提交一个事务后自动开始一个新事务
xAbortRetaining :回退一个事务的同时开始一个新事务

b).Connected
标识和数据库的连接受否处于激活(True)

方法:

c).Open(UserID,PassWord)
打开一个连接(可以提供用户名和密码)

d).Cancel
关闭数据库的连接

e).Close
释放所有的系统关联资源

f).Execute 执行一个SQL 命令。
完整的表述是

Execute(SQL命令,该命令设计的记录数目,Option)

其中,Option的值如下

eoAsyncExecute 异步执行指定的命令
eoAsyncFetch 给定Cache属性的值后,再异步的取得数据
eoAsyncFetchNonBlocking 非阻塞式线程执行
eoExecuteNoRecords 没有返回纪录

g).GetProcereNames(List:Tstring);

获取数据库服务器上的存储过程名称,过程名保留在List参
数中。
f).GetTableNames(List:Tstring;SystemTables:Boolean=False)

获取数据库的数据表,表名存放在List参数中,SystemTables
指示是否获取数据库系统表的名称,系统表是关于数据库类型定义
和用户信息的数据表,是数据库本身自动产生的。在特殊的设计中,
这个表格可能会有用。

3)ADODataSet的属性和方法
我们在ADOTable中讨论的属性和方法,几乎都可以在ADODataSet中得
到应用,但还有几个特殊的属性:

CommandType

主要用于控制CommandText属性的状态,其中:

cmdtable ...CommandText使用“表名”连接
(内部是做了SQL 对各列的查询);
cmdTableDirect ...CommandText使用“表名”连接
(内部不做SQL ,而是真正的表名连接);
cmdtext ....使用SQL命令文本;
cmdfile ....CommandType属性值作为持久的文件名;
cmdStoredProc...CommandType属性值作为存储过程名称
来计算;
cmdUnKnown ....不知道(默认为SQL)

CommandText
根据CommandType的设置,向提供者发出“表名”或SQL 命令。