Delphi数据库编程教程(八)

原创 2002年12月27日 09:07:00
 

第二节浏览和导航

      创建访问数据库数据的表单有两种不同的方法。第一种方法是使用Database Form Expert(数据库表单专家)。但不幸的是,数据库表单专家仅仅只可以处理数据集组件中的BDE-aware(可视化BDE)子集。第二种方法是手工放置和连接所有的数据组件。

         定义用户界面(Defining the User Interface

      我们将分三步建立自己的数据浏览表单。第一步,为表单定义用户界面;第二步,增加和配置数据访问组件;第三步也是最后一步,增加数据可视化控件。

    在你开始前,关闭所有打开的工程。接着进行下面的步骤:

  • 选择File | New Application。这将创建一个新的工程,包括一个空的表单、一个单元和一个工程文件;
  • 在表单上增加一个PageControl组件。该组件位于组件面板的Win32页。让它的名称为默认名:PageControl。
  • 在PageControl上增加TabSheets(在PageControl上右击并选择"New Page")。设置第一个TablSheet1的标题为“Browse(浏览)”,第二个为“Edit(编辑)”。
  • 在表单上放置一个DataSource(DataAccess页)、一个ADOTable和一个ADOConnection(ADO页)组件。名称全为其默认名。
  • 选择PageControl组件的第一页并在Browse(浏览)标签单上放置一个DBGrid(Data Controls页)组件。
  • 放置一个DBNavigator组件(Data Controls页)。导航器按钮用于移动表中的记录。
  • 通过使用对象检视器设置组件间的连接,如下:

          DBNavigator1.DataSource = DataSource1
          DBGrid1.DataSource = DataSource1
          DataSource1.DataSet = ADOTable1
          ADOTable1.Connection = ADOConnection1
          ADOConnection1.ConnectionString = ...
          ADOConnection1.LoginPrompt = False
          ADOTable1.Table = 'Applications'

      注:如在第二章中讨论的一样,ConnectionString属性指出数据存储的物理位置和我们的访问方式。你可以使用与第二章同样的连接字符串,或者通过调用连接字符串编辑器自己建立一个。

      设置ADOConnection组件的LoginPrompt属性为False,阻止数据库登录界面出现。既然我们没有为数据库设置任何密码,我们也不需要登录提示。

Data Browsing at design time with DBGird

      字段(Fields

      当我们想为用户提供整个记录集(表中的数据)的时候,可以使用DBGrid组件。即使我们可以使用DBGrid让我们的用户在表中添加、编辑和删除记录—但最好的方法是为表中的每个字段使用Field(字段)对象。字段对象多用于应用程序中数据显示和编辑的控制。通过使用Fields Editor(字段编辑器),我们可以为表中的每一列设置固定的字段对象列表。字段编辑器可通过双击DataSet组件调用。为了给数据集的固定字段列表增加字段,可以右击列表并选择Add Fields(增加字段)。

      除了为用户显示表中的所有数据(在DBGrid中)外,我们还需要使用field-oriented(面向字段)的数据可视化组件如:编辑框。例如,DBEdit组件是TEdit类的数据可视化版本。它是任何数据输入程序的积木。

      在表单中放置DBEdit并把它与表的字段相连的最简单的方法如下:

  1. 通过双击ADOTable组件调用Fields editor(字段编辑器);
  2. 选择Name字段,如例。让Page Control的第二个标签成为被选项;
  3. 在表单上拖动Name字段。

Dragging field objects

      当你在标签单上放下Name字段时,Delphi会在上面放置一个Label和一个DBEdit组件。Label组件的Caption(标题)与被拖动字段的DisplayLabel(显示标签)属性一样。DBEdit组件通过它的DataSource属性与数据集的数据源相连。如果你从字段编辑器中选择多个字段并把它放置在表单上,Delphi将在表单上放置同样多的Label/DBEdit组件。

Data browsing at design time with field oriented components

      “它活了!”(It's alive

      OK,我们现在所需要做的是激活连接并滚动记录。一个数据集(ADOTable)组件的Active(激活)属性指出我们是否与一个表相连。设置Active为True或调用Open方法将使ADOConnection组件的CONonnected属性为True—并在相关的数据可视化控件中显示数据。

      首先、接着、最后......(First, Move by, Last,...

      现在我们作最后的准备。接下来我们了解一下怎样浏览记录集。

      DBNavigator组件为浏览记录集提供了一个友好而简单的工具。除了它的浏览能力外,DBNavigator还提供了方法操作数据,如:插入、删除或取消改变。例如,如果我们点击Delete(删除)按钮,相应的记录将会从记录集中删除。每个按钮都是可选的,你可以随意的组合和匹配它们。

      通过按钮设置,我们可以跳到最后一个记录或移到上一个记录。例如,点击Last(最后)按钮设置当前记录为记录集的最后一条记录并使Last(最后)和Next(下一个)按钮失效。点击Last按钮与调用数据集的Last方法具有相同的功效。

      需要注意的是,DBNavigator不能处理的浏览操作之一是按一定的数量间隔对记录进行向前或向后的移动。数据集的MoveBy方法被用于定位相对于记录集当前记录的任一记录的位置。

       这就是本章。现在我们将准备学习数据集的编辑和查询,这将在本教程的接下来的章节中进行说明......

 

2002年12月26日 20:49

Delphi xe7并行编程快速入门

现在多数设备、计算机都有多个CPU单元,即使是手机也是多核的。但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码。好了,现在可以使用Delphi做并行编程了。在Delphi、C++ B...
  • henreash
  • henreash
  • 2014年11月20日 16:19
  • 6855

Delphi使用ADO组件访问ACCESS数据入门例程

在form上添加控件 一.方法一: 1.增加一个ADOConnection控件,点击ConnectionString属性,选Use Connection string 下面的例子中...
  • qq173684423
  • qq173684423
  • 2015年04月09日 13:17
  • 2242

几种编程语言的优缺点

圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来。 巴别塔不建自毁,与其说上帝的分化将人类的语...
  • dbyoung
  • dbyoung
  • 2017年01月22日 09:57
  • 1288

Delphi 多线程编程(1)

本文的内容取自万一博客,并重新加以整理,在此留存仅仅是方便自己学习和查阅。所有代码均亲自测试 delphi7下测试有效。图片均为自己制作。 多线程应该是编程工作者的基础技能, 但这个基础我从来没...
  • lailai186
  • lailai186
  • 2013年04月09日 07:55
  • 2586

FireDAC简易教程

FireDAC简易教程(Delphi)   一、VCL下的FireDAC   1.创建数据库连接: 新建一个VCL Forms Application工程,放置一个TFDConnection控件,设置...
  • ooooh
  • ooooh
  • 2016年01月20日 21:31
  • 5028

程序员面试题精选100题(58)-八皇后问题[算法]

题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年02月24日 12:19
  • 731

Delphi使用线程TThread查询数据库

网上查了很多资料,看了很多关于线程TThread的使用,并动手操作,但均未能达到想要的效果。我所要的效果是,线程执行耗时的操作而不影响主程序,用户使用没有卡顿的感觉。知道是使用线程编程解决,后来经过不...
  • Michael__mai
  • Michael__mai
  • 2015年12月12日 10:27
  • 1889

Delphi ADOQuery连接数据库的查询、插入、删除、修改

//查询记录 procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADO...
  • chinazhd
  • chinazhd
  • 2015年04月14日 21:04
  • 13821

delphi bpl插件系统开发(转)

半路出家的delphier一如我,对于win32api式的调用有着近乎厌恶的抵触情绪,我很早以前看c++的教程时看到lptrXXXXX的变量就头大,以至于到现在都不会用c++,都不曾写成功过那怕一个h...
  • gjtao1130
  • gjtao1130
  • 2016年04月12日 14:39
  • 760

Delphi 串口通信(1)

利用 Delphi实现串口通信的常用的方法有 3种: 一是利用控件,如 MSCOMM控件和 SPCOMM控件; 二是使用 API函数; 三是调用其他串口通信程序。其中利用 API编写...
  • lailai186
  • lailai186
  • 2013年08月02日 10:16
  • 4678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi数据库编程教程(八)
举报原因:
原因补充:

(最多只允许输入30个字)