《Delphi7与数据库.ppt》由会员分享,可在线阅读,更多相关《Delphi7与数据库.ppt(84页珍藏版)》请在课桌文档上搜索。
1、第六章 Delphi 7与数据库,6.1数据库简介 6.2 Delphi7的数据库访问机制 6.3 数据库组件 6.4 TField对象的使用 6.5 数据集的操作 6.6 TQuery组件 6.7 BDE综合实例 6.8 ADO技术,6.1数据库简介,数据库(Database,DB)是指为了满足一定范围内众多用户的需要,在计算机中建立的一个可以长期存储的、有组织的、可共享的数据集合。一个数据库可以包含许多数据表文件、索引文件以及其他文件。数据库系统(Database System,DBS)是指具有数据管理功能的计算机系统,它一般由数据库、数据库管理系统(Database Manngement
2、 System,DBMS)和应用系统构成。数据库管理系统为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据控制等。,数据库系统根据数据的组织方式,主要分为层次数据库系统、网状数据库系统、关系型数据库系统和面向对象数据库系统等几类。,Delphi支持关系型数据库,关系型数据库由表组成,一个关系用一个二维表来定义:表的行定义了事物的一组属性数据,称为记录;表的列定义了事物的某种属性,称为字段。,一个数据库应用程序在逻辑上通常由两部分组成:数据库访问模块和用户界面,这就是数据库应用程序的层次结构。在单层的数据库应用程序中,应用程序和数据库共享一个文件系统,它们使用本地数据
3、库或文件来存取数据;在双层的数据库应用程序中,客户程序提供用户界面,通过各种数据访问引擎(如BDE、ADO等)从远程数据库服务器获取数据;在多层的数据库应用程序中,客户程序、应用服务器和远程服务器分布在不同的机器上。,6.2 Delphi7的数据库访问机制,一、Delphi与数据库 二、Delphi的数据库体系 三、Borland数据库引擎(BDE)四、Database Desktop的使用 五、数据库浏览器(Database Explorer),一、Delphi与数据库,Delphi提供丰富的组件来访问各种类型的数据库,例如,组件面板的BDE页、ADO页和InterBase页,以及其他页上的
4、一些通用组件都用于数据库的访问。Delphi利用BDE或ADO提供的驱动程序,可以访问不同的数据库。BDE提供的驱动程序多用于访问本地数据库,例如Paradox和dBASE。,二、Delphi的数据库体系,三、Borland数据库引擎(BDE),Borland推出了一个数据库引擎(Borland Database Engine,BDE),通过它可以访问本地数据库和远程数据库中的数据,开发出具有可伸缩体系结构的数据库应用程序。有了BDE,就可以将一组相关的表放进一个目录中,给这组相关表起个别名,从而得到一个逻辑表集合,即虚拟数据库。通过BDE中的这些虚拟数据库,就可以连接到这些表。,BDE管理器
5、(BDE Administrator)是设置和管理BDE的工具,它可以用来管理BDE中的数据库别名和驱动器。通过BDE管理器,建立一个虚拟数据库,其操作步骤如下:步骤一:执行【开始】【程序】【Borland Delphi7】【BDE Administrator】菜单命令,打开BDE 管理器窗口。步骤二:右击Database页标签,选择【Object】【New】菜单项,弹出选择数据库驱动器的对话框,根据需要选择适当的驱动器。单击OK按钮,关闭该对话框,回到BDE管理器窗口。,步骤三:在BDE管理器左窗口的新建项目中,输入一个新的数据库别名MyData。步骤四:在Path框中输入D:Data(该文
6、件夹由用户事先建立),为数据库别名MyData指定路径D:Data。注:要删除别名,可在Database页标签中选择要删除的别名,右击后选择Delete即可。也可以使用后面介绍的数据库桌面和数据库浏览器定义和删除数据库别名。,四、Database Desktop的使用,Database Desktop是Delphi中提供的数据库管理工具,使用它可以建立和修改数据表结构,完成简单数据的输入及其他操作。选择执行菜单【Tools】【DataBase Desktop】项,或【开始】【程序】【Borland Delphi7】【Database Desktop】菜单项,可以打开Database Deskt
7、op的操作窗口。,1.定义数据库别名选择执行菜单【Tools】【Alias Manager】项,打开别名管理操作窗口。单击【New】按钮,在Database Alias 和Path 框中分别输入新的别名和路径,可以定义新的别名。单击【Remove】按钮可以删除别名。,2.设置工作目录及私有目录工作目录是指数据库工作平台首先找到文件的地方,私有目录是用户自己使用的目录,其他网络用户无法看到这个目录。工作目录菜单项“Work Directory”及私有目录菜单项“Private Directory”都在“File”菜单下。,3.建立数据表结构在数据库桌面环境下执行菜单【File】【New】【Tab
8、le】项,选择数据库类型Paradox,单击Ok,进入表结构定义窗口。,4.保存数据表文件 可以将数据表保存在当前目录(当前目录就是工作目录),也可以指定数据库别名,即为数据表确定了相应的文件夹位置,还可以选择其他的文件夹。,5.建立索引在建立数据表的结构后,还要根据功能的要求对数据表定义关键字。定义关键字的目的是为了对数据表建立一种索引,以便实现多表间的同步操作以及实现对数据表分类排序和快速查询。要建立一个索引,就要指定一个索引关键字(它由一个或几个连续的字段组成)。同时系统要为每个索引建立一个对应的索引文件。索引可分为主索引与次索引两种。主索引关键字所对应的数据必须唯一,且必须是最前面的几
9、个字段,而次索引没有这个限制。每个文件只能建立一个主索引,而次索引可以建立多个。,建立主索引 在数据库桌面的结构定义窗口,将光标移到关键字字段的Key列的下面,双击或按空格键,系统在该位置显示一个“*”号,此字段即成了关键字字段。建立次索引 在数据库桌面的结构定义窗口,单击Table Properties下拉按钮,选择Secondary Indexes菜单项,单击Define按钮,打开“Define Secondary Indexes”对话框,选择次关键字字段(可选择多个),完成后按OK按钮。这时会出现Save Index As对话框,在该对话框中指定次索引文件名。,6.设置有效性检查 点击T
10、able Properties下拉按钮,选择Validity Checks功能项,然后用鼠标选择一个字段,便可以对该字段设置有效性检查。7.设置口令 点击Table Properties下拉按钮,选择Password Security功能项,在弹出的对话框中输入指定的口令,即可对该数据表实现数据保护。,8.设置参照完整性 点击Table Properties下拉按钮,选择Table Lookup功能项,可以进行参照完整性设置。9.输入数据 数据表中数据的输入,一般来说,既可以在数据库桌面环境下进行,也可以在应用程序的运行环境进行。但有些类型的字段(例如,备注型M、位图型G及对象型O)必须由应用
11、程序提供相应的功能,在程序运行状态下,通过执行某种操作才能完成信息的输入。,五、数据库浏览器,数据库浏览器可用于定义数据库别名、查询或编辑数据库中的各类信息,如数据库的参数设置、各数据表文件的结构及数据,也可以使用SQL语句进行查询。选择执行【Database】【Explorer】菜单命令,打开数据库浏览器,也可以选择执行【开始】【程序】【Borland Delphi7】【SQL Explorer】菜单命令打开数据库浏览器。,6.3 数据库组件,Delphi使用VCL将BDE封装成组件,为数据库应用程序提供统一的访问接口,组件面板的BDE页、Data Access页和Data Controls
12、页提供了不同的数据库组件。其中,BDE页和Data Access页的组件为非可视组件,Data Controls页的组件为可视组件。,BDE组件集(BDE页):提供了以BDE方式访问数据库的数据表和查询等数据集组件,如TTable、TQuery、TStoredProc等;数据访问组件集(DataAccess页):提供了数据源等连接组件;数据控制组件集(DataControls页):用来浏览和编辑数据,为用户使用数据库提供接口,如TDBGrid、TDBEdit、TDBMemo等。,一、TTable组件,TTable组件用于连接一个数据表并对数据表的各种状态进行控制,它通过BDE从一个数据库表格中
13、取得数据,并通过TDataSource组件将数据传递给一个或多个数据控制组件,或者反之,从数据控制组件得到的信息通过BDE传递给数据库。TTable组件既可以访问本地的数据库,也可以访问ODBC数据库,还可以访问远程数据库。,1.TTable组件连接数据表的一般步骤步骤一:把一个TTable组件放到窗体上,设置DatabaseName属性指定要访问的数据库。步骤二:设置TableName属性指定要访问的表。步骤三:把一个TDataSource组件放到窗体上,设置DataSet属性指向该TTable组件。步骤四:把一个数据控制组件放到窗体上,设置DataSource属性指向该DataSource
14、组件。步骤五:把TTable组件的Active属性设为True。,2.字段组件的访问 字段组件对应着数据表中实际的字段,读写数据表中的字段值是通过访问相应的字段组件进行的。一般采用的方法有两种:使用数据集组件的Fields属性可以通过Fields属性的下标(即索引号)来访问各字段,索引号从0开始。例如,Table1.Fields0表示当前记录的第一个字段的数据。如:Table1.Fields0.AsString:=Edit1.Text;Edit1.Text:=Table1.Fields0.AsString;,使用数据集组件的FieldByName方法用这种方法访问字段组件时,必须知道数据表中各
15、个字段的名字。例如:Edit1.Text:=Table1.FieldByName(Name).AsString;,3.记录的增加与删除Insert方法:在当前记录之前插入一条新的记录。Append方法:在文件的最后追加一条新的记录。Delete方法:删除数据表中的当前记录。EmptyTable方法:删除表中的所有记录。使用该方法前必须将表关闭,删除的数据是不能恢复的,只删除记录数据而保留表的结构。例如:Table1.Active:=False;Table1.EmptyTable;,DeleteTable方法:删除一个与TTable组件相连的数据表。使用DeleteTable方法之前,数据表必须
16、关闭。该方法不仅删除表中的所有记录,而且也删除表的结构。,二、TDataSource组件,TDataSource组件是联系数据集组件与数据控制组件的桥梁。其常用属性如下:AutoEdit属性:该属性值是一个布尔值,用于说明是否将数据集置于编辑状态,为Ture时允许用户编辑数据集中的数据。DataSet属性:指明与当前数据源组件相联系的数据集组件对象的名字。Enabled属性:该属性值是一个布尔值,决定了与此数据源组件相连的数据控制组件是否显示数据。为True(默认值)时,数据控制组件将显示数据。,三、数据控制组件,数据控制组件也称为数据感知组件,它应用程序的接口,让用户能浏览和操作数据库。数据
17、控制组件在Data Controls页上。数据控制组件与数据集组件之间的联系是通过数据源组件TDataSource来实现的。,数据控制组件常用属性:DataSource:将此属性设置为窗体上数据源组件的名称,建立数据控制组件与数据源组件之间的联系。DataField:用来确定访问的是数据集中的哪一字段。TDBGrid组件和TDBNavigator组件访问数据集中所有的字段,所以没有这一属性。Enabled:决定数据控制组件能否接受来自鼠标、键盘和定时器事件的消息。ReadOnly:确定是否可以在数据浏览中编辑修改字段的值。默认值为False,也就是可以在其中编辑修改字段的值,反之,则不可以。,
18、1.TDBGrid组件TDBGrid组件的作用是一个将数据集记录显示在网格中,并且可以对其中的数据进行编辑修改。Columns属性。指定TDBGrid对象中各栏目的特性,如栏目的标题、栏目的宽度及颜色、在该栏目中显示的字段的名称、数据在栏目中的位置方式等。,2.TDBNavigator组件 TDBNavigator组件是用来在数据集中浏览数据和编辑数据的,它由一组控制按钮组成,通过这些控制按钮,用户可以完成在数据集中移动记录指针,插入、删除、编辑、确认、取消、刷新记录数据等。它一般与其他数据控制组件(如TDBGrid或TDBEdit)一起使用。,设置按钮 TDBNavigator组件中提供了1
19、0个按钮,设置各按钮的VisibleButtons属性可以控制按钮的显示与否。设置按钮提示字符串TDBNavigator组件的Hints属性和ShowHint属性就用来设置和显示提示字符串。设置按钮的操作方式 CanfirmDelete属性。该属性值是一个布尔值,用于控制执行删除操作时是否弹出确认对话框缺省值为True。,3.TDBText组件TDBText组件是用来显示数据集里当前记录中一个特定字段的值,随着记录指针的移动,其显示的内容也不断变化,这是它与TLabel组件不同的地方。用TDBText组件显示的字段值是只读属性的。如果用户要修改数据,就需要使用TDBEdit组件或者TDBMem
20、o组件。TDBText组件的重要属性有DataSource和DataField属性。,4.TDBEdit组件 TDBEdit组件用来显示和编辑数据集里当前记录中一个特定字段的值,随着记录指针的移动,其显示的内容也不断变化。常用属性有DataSource、DataField、Enabled和ReadOnly。,5.TDBMemo组件TDBMemo组件用来显示和编辑数据集中的多行文本,TDBMemo的Text属性代表了该字段的内容。TDBMemo组件除了具有其他数据控制组件所具有常用属性以外,还具有以下不同的属性:AutoDisplay属性:决定是否自动显示数据集中备注类型的字段值。Alignme
21、nt属性:说明文本的对齐方式。MaxLength属性:限定可以输入的最大字符数。值为0时表明不限制最大字符数。WordWrap属性:指明文本是否自动换行。,6.TDBCheckBox组件TDBCheckBox组件是允许用户选择或不选择一个值的数据控制组件,TDBCheckBox组件适合于表达布尔类型数据的字段。TDBCheckBox组件除了完成CheckBox组件的功能外,主要是用来显示和修改一个布尔类型数据的字段值。,7.TDBListBox组件 TDBListBox组件用来提供给用户一个可选的列表,用户可以从中选取适当的值来修改当前记录中的特定字段值。它与TListBox组件类似。,8.T
22、DBComboBox组件 TDBComboBox组件与TDBListBox组件的功能相似,其用法与TDBListBox组件相应的属性一样。9.TDBRadioGroup组件 TDBRadioGroup组件是允许用户在一组选项中选取唯一一项的数据控制组件,它必须指向数据集中一个特定的字段。TDBRadioGroup组件与普通单选框用法相似。,10.TDBImage组件 TDBImage组件用来显示和编辑当前记录中BLOB类型的图形字段。该组件除了可以在窗体中显示数据集里的图形数据外,还允许通过剪贴板对图形数据进行编辑操作。其特殊的属性有:Picture属性:保存DBImage对象中的图形数据。C
23、enter属性:控制是否将图形自动显示在对象的中心。该属性默认值为False,图形显示在DBImage对象的左上角。,6.4 TField对象的使用,一、动态字段对象和永久字段对象 二、设置字段属性 三、对字段进行格式化 四、字段的有效性检查 五、创建查找字段 六、创建计算字段,一、动态字段对象和永久字段对象,用TField字段对象可以方便地访问数据集中的字段。当把一个数据集放到窗体上并且打开它时,Delphi会为数据集中的每一个字段自动生成一个动态的字段对象。当数据集关闭时,这些字段对象也跟着消失。动态字段对象的最大特点是适应性强,动态字段对象的不足之处是:要想改变字段的显示属性、数据格式,
24、就要编写代码。不能把某些字段暂时隐去,也不能增加新的字段。,永久字段对象的最大好处是可以在设计时设置它的属性。此外,永久字段对象还具有以下优势:选择部分字段;增加新的字段,包括“计算字段”等;在永久字段对象列表中删除某些需要保护的字段,避免用户访问这些特定的字段;在数据库查询或特定数据表的字段基础上定义新字段,代替现存的字段;改变原有字段的显示和编辑属性。对于同一个数据集来说,动态字段对象和永久字段对象不能同时存在。,二、设置字段属性,为数据集创建永久TField对象步骤如下:步骤一:设置一个数据集组件(如Ttable)和数据表关联;步骤二:双击TTable组件,或右击Ttable组件,选择“
25、Fileds Editor”菜单命令,将打开字段编辑器;步骤三:右击字段编辑器窗口的空白处,弹出快捷菜单,单击“Add Fields”菜单命令,打开“Add Fields”对话框;步骤四:选择一个或几个字段,单击OK按钮。Delphi将根据选择的字段创建永久字段对象。,TField对象常用属性:Alignment:设置字段在数据组件中的对齐方式Currency:仅用于数字字段,True表示按货币格式显示DisplayFormat:设置字段在数据组件中的显示格式DisplayLabel:设置字段在数据表格中的列标签EditFormat:设置字段在编辑时的显示格式EditMask:设置用户编辑数据
26、时必须遵守的规则FieldKind:指定字段的生成类型FieldName:指定字段的名称Index:指定字段在数据集中的序号Max Value:指定字段的最大值Min Value:指定字段的最小值Name:指定永久字段对象的内部名称。Size:指定字段的长度(以字符为各单位),三、对字段进行格式化,对字段进行格式化,操作步骤如下:步骤一:双击TTable组件,在字段属性编辑器中添加字段后,选定BIRTHDAY字段。步骤二:在对象浏览器(Object Inspector)窗口中双击“EditMask”属性,将打开“Input Mask Editor”对话框。步骤三:为选定的字段设置掩模码并测试,
27、然后单击“OK”按钮关闭对话框。,四、字段的有效性检查,字段的有效性可以保证字段中的数据与预定义的数据格式、限定范围、条件等相符。可以使用TField对象的Validation事件来控制字段的有效性规则。,五、创建查找字段,使用查找字段可以在表格中添加一个下拉列表框,使得用户可以在数据集对象设定的一些选项中选择,而不必盲目地用键盘输入数据。用这种方法可以确保用户输入的总是有效数据,从而不必总是要进行有效性检查。,六、创建计算字段,Delphi的TField对象还允许创建另一种特殊的字段计算字段。计算字段是根据数据表中的字段数据计算出来的,用户可以通过计算字段很直观地看到几个字段的计算结果,但数
28、据表不会将计算字段的数据存入内存,因此计算字段不会被存储在数据表中,它只是用来显示某些计算结果的。,6.5 数据集的操作,一、数据集的打开和关闭 二、数据集的状态 三、移动记录指针 四、限制记录集 五、查找记录 六、数据集的修改 七、建立数据表的主从关系,一、数据集的打开和关闭,1.设置Active属性Active属性用来说明数据表文件的打开状态。通过设置Active属性来决定一个数据集组件与数据表数据之间的联系。2.调用Open和Close方法 使用Open和Close方法也能打开和关闭一个数据集。,二、数据集的状态,数据集的状态(State属性)决定了当前能够对数据集进行的操作。在程序运行
29、期间,可以通过检测数据集的只读属性State来确定其当前状态。,三、移动记录指针,在对数据表操作时,系统使用一个记录指针指向当前正在访问的记录。浏览数据表就是通过移动记录指针来查看数据表中的记录。Bof属性:Bof属性为布尔值。为True表明当前记录指针所处的位置为数据集的第一条记录;Eof属性:Eof属性为布尔值。为True表明当前记录指针所处的位置为数据集的最后一条记录;First方法:将记录指针移至数据集的第一条记录处,并使之成为当前记录,同时将Bof属性值设置为True。,Last方法:将记录指针移至数据集的最后一条记录处,并使之成为当前记录,同时将Eof属性值设置为True。Next
30、方法:将记录指针后移一条记录,并使之成为当前记录。如果记录指针指向了数据集的最后一条记录,将Eof属性设置为True。Prior方法:将记录指针前移一条记录,并使之成为当前记录。如果记录指针指向了数据集的第一条记录,将Bof属性设置为True。MoveBy方法:将记录指针从当前记录开始向后或向前移动若干条记录。格式如下:function MoveBy(Distance:Integer):Integer;,四、限制记录集,Delphi提供了以下两种常用的限制记录集的方法。1.SetRangeStart方法和SetRangeEnd方法SetRangeStart方法和SetRangeEnd方法可以过
31、滤记录,SetRangeStart方法用来限制记录集的开始,SetRangeEnd方法用来限制记录集的结束,调用ApplyRange方法使限制生效。调用CancelRange方法取消为数据表设定的限制范围。这种限制记录集的方法要求指定数据集的检索字段。,2.使用数据集的Filter属性 Delphi提供了一种更简便的限制记录集的方法:用数据集的Filter属性。Filter属性值是一个用来指明数据表过滤标准的字符串,Filtered属性决定了过滤器是否起作用。当使用Filter属性时,不必指定数据集的检索字段,各字段或字段的组合都可以运用该属性。,五、查找记录,1.使用FindKey方法使用T
32、table的FindKey方法或FindNearest方法,可以查找数据表中满足条件的记录,要查找的表必须按查找关键字建立了索引。其定义如下:function FindKey(Const KeyValues:Array of Const):Boolean;procedure FindNearest(Const KeyValues:Array of Const);,2.搜索特定记录(Locate)FindKey和FindNearest方法只能在TTable组件中使用,如果使用的是TQuery或TStoreProc组件,就要使用Locate方法来查找记录。Locate函数适合于所有数据集组件,也适
33、合于TTable组件。Locate函数可以在任何表中基于任何类型的字段来查找记录,而不管表格是否建立了索引。Locate函数定义如下:function Locate(const KeyFields:string;Const KeyValues:Variant;Options):Boolean;,六、数据集的修改,以下为与数据集修改有关的属性和方法。ReadOnly属性:确定相应的数据集是否为只读方式。True表示只读,不能修改。Exclusive属性:确定相应的数据集是否为独占方式。如果设定为True,则其他程序不能使用该数据集,否则可同时使用。CanModify属性:确定相应的数据集是否可以
34、改变。当以只读方式打开数据集时,该属性的返回值为False。Modified属性:标记相应的数据集是否已被修改过。当其值为True时,表示已被修改过。,Delete方法:删除数据集中的当前记录,并使当前记录指向下一条记录。Edit方法:使数据集处于编辑状态,此时才可对数据集进行编辑修改操作。Insert方法:在当前记录之前插入一个新的空记录,并将新记录作为当前记录。用户向记录的字段中输入数据后,通过调用Post方法将这些更改提交给数据库。Post方法:使当前对数据集所作的修改有效,即对数据集所作的修改写入到数据库中。调用了Edit、Insert或Append等方法后,需要调用Post方法将修改
35、的数据写回数据库。Cancel方法:使当前对数据集所作的修改无效,即取消对数据集所作的修改。,AppendRecord方法与InsertRecord方法:这两个方法分别与Append方法和Insert方法相似,它们都是用于在表中插入一条新记录,但AppendRecord方法和InsertRecord方法比Append方法和Insert方法更简单、更方便一些,不需调用Post方法。其过程形式如下:procedure AppendRecord(Const Values:Array of Const);procedure InsertRecord(Const Values:Array of Cons
36、t);,SetFields方法:以参数的形式来修改当前记录中的多个字段值。其过程形式如下:procedure SetFields(Const Values:Array of Const)Refresh方法:从数据库中取出数据来更新数据集的内容。它保证了应用程序拥有数据库的最新数据。,七、建立数据表的主从关系,设置表之间的主从关系是通过设置从表的MasterSource属性和MasterField属性来实现的。且从表必须是按MasterField属性中指定的字段建立了索引的。,6.6 TQuery组件,一、查询数据库组件TQuery 二、查询语句Select简介,一、查询数据库组件TQuery,
37、1.TQuery组件与TTable组件的比较TQuery组件和TTable组件同属于数据集组件,它们在很多地方是相似的,但二者又有区别。主要表现在以下几个方面:TQuery组件主要功能是用来支持SQL语言访问本地或远程数据库。TQuery组件允许用户同时访问多个表,而TTable组件一次只能访问一个表格。TQuery组件访问的是表格中的特定数据内容;而TTable组件只有在提供过滤或限定检索范围时才能访问表格中的特定数据内容,否则,TTable组件访问的将是表格中的全部数据。,2.直接设置SQL实现查询SQL是一种结构型的数据库语言,包括定义语言DDL与处理语言DML。DDL用于创建与维护数据
38、库的结构,而DML用于维护与查询数据库中的数据。DML中包括选择Select、插入Insert、更新Update、删除Delete等语句。其中最常用的Select语句的格式如下:Select From Where Order By Group By,3.动态执行SQL语句 为了在程序中动态设置SQL并执行查询,可在窗体中设置一个按钮,并在该按钮的事件处理程序中对Query对象设置相应的SQL语句。,4.通过组装SQL语句实现查询 用户一般对数据库的设置及SQL语句不太熟悉,通常情况是让用户提供必要的信息,在程序中按用户提供的信息装配成SQL语句。5.通过设置SQL参数实现查询 灵活设置SQL语
39、句的另一种办法是在SQL语句中引入参数,即设置带参数的SQL语句,由用户设置该参数所对应的值,程序中将用户设定的值传送到参数中,并执行该SQL语句,从而实现动态查询。设置带参数的SQL语句时,必须在参数前加上“:”,“:”后紧跟参数。,6.执行查询 要在设计期执行查询,只要把Active属性设为True即可。不过,在设计期能执行的SQL语句仅限于Select语句,不能是Insert、Update或Delete语句。要在运行期执行查询,可以调用Open或ExecSQL函数。Open适合于执行Select语句,而ExecSQL适合于执行Insert、Update或Delete语句,不返回结果。在调
40、用Open或ExecSQL之前,应首先调用Close方法关闭数据集。,二、查询语句Select简介,查询语句Select是使用最多的SQL语句,它完成的是数据库的查询功能。Distinct子句:Distinct的作用是对某个表格所选择的字段数据中略过重复的记录,即针对某些字段查询出来的记录结果是唯一的。例如,字段NAME、SEX、MAJOR_KEY的值均相同的记录只显示一个,可用如下语句:Select distinct NAME,SEX,MAJOR_KEY From StudentTop和Order By子句:Top子句实现从第一条记录开始返回特定条数的记录的功能。,Order By子句:表示
41、排序,参数ASC表示递增(默认值),DESC表示递减。例如,按birthday由大到小显示各记录相应字段的数据,可用如下语句:Select NAME,SEX,BIRTHDAY From Student Order By BIRTHDAY descGroup By子句:依据指定的字段,将具有相同数据的记录合并成一条。可以使用求和Sum、求平均值Avg、求最小值Min、求最大值Max、求记录数Count等聚集函数以及字符串函数等。Having子句:指定一特定的分组记录,并满足Having所指定的条件或状态,但条件只针对分组后的记录设置。In操作数:要查询的字段值包含在所指定的内容中。Like操作数
42、:用来将一字符串与另一特定字符串样式比较,并将符合该字符串样式的记录过滤出来。,6.7 BDE综合实例,一、学生信息管理(TTable)二、学生信息管理(TTable、TQuery),6.8 ADO技术,一、设置ODBC数据源 二、连接Access数据库 三、ADO常用组件 四、ADO应用实例,一、设置ODBC数据源,ODBC是一种采用开放式结构进行数据库连接的接口标准,是一种开放的独立于厂商的API应用程序接口,可以跨平台访问个人计算机、小型计算机及主机系统。,二、连接Access数据库,三、ADO常用组件,1.TADOConnection组件TADOConnection组件用来建立与ADO
43、数据库之间的联系,各种ADO数据集及操作组件可以共用这种联系来执行命令,读取数据,并执行相应的操作。TADOConnection组件允许通过改变其属性值来控制与数据库之间联系的属性和情况。,(1)TADOConnection组件的重要属性ConnectionString属性Connected属性LoginPrompt属性ConnectionTimeout属性(2)TADOConnection组件的重要方法 Cancel方法 Open方法,2.TADODataSet组件TADODataSet组件可以直接与一个表进行连接,也可以执行SQL语句,还可以执行存储过程,可以说它集TADOTable、TA
44、DOQuery、TADOStoredProc三者的功能于一身。使用时首先设定TADODataSet的Connection属性为TADOConnection组件。如果没有TADOConnection组件,就直接设定ConnectionString属性。,(1)TADODataSet组件的重要属性 ConnectionString属性 CommandType属性和CommandText属性 Connection属性(2)TADO DataSet组件的方法 TADO DataSet组件的方法大多从TDataSet处继承而来,如用来移动数据指针的First、Next、Last和Prior方法,及用来编
45、辑数据记录的Insert和Edit方法等。,3.TADOTable组件TADOTable组件与BDE中的Table组件非常类似,许多属性、事件和方法也一样。如果使用了TADOConnection组件,那么TADOTable组件的Connection属性可直接设置为指向TADOConnection组件,否则TADOTable组件的ConnectionString属性就需要详细设置。,4.TADOQuery组件TADOQuery组件的ConnectionString属性和Connection属性的设置与上面的TADOTable组件相同。TADOQuery组件的功能和作用与BDE中的TQuery组件类似。但有一点不同,即在程序中为参数赋值时,TQuery组件的赋值语句为:ParamByName(FieldName).Value:=s1;而TADOQuery组件的赋值语句为:Parameters.ParamByName(FieldName).Value:=s1;,
链接地址:https://www.desk33.com/p-241838.html