简单数据库查询操作
上一讲我们学习了数据库编程的基础知识,并对 MP3Collect 进行了一番改造,使其具有数据
库访问能力。在本讲中,我们首先设置三个数据库元件 Query1、DataSource1 和 DBGrid1 的属性,
接下来学习如何通过 Query 控件实现简单的数据库查询操作。
设置控件属性
Query1 控件的用途是查询数据库,获取可以显示在窗体中的数据。Query 控件和 Table 控件一
样,它们都是从 VCL 类 TDataSet(数据集元件)中继承来的,都代表数据库中一组记录的集合。
不同的是,Table 控件代表库中实际存在的一个数据表对象,而 Query 控件则代表一次查询的结果。
Query 控件支持通过 SQL 进行查询,因此比 Table 控件具有更大的灵活性,它可以同时访问多个数
据表,可以灵活访问数据表中的行和列,可以实现十分复杂的条件查询。
SQL 的全称是结构化查询语言,它是一种标准的数据库查询语言,具有自己的关键字(SQL
中的关键字是不分大小写的,SELECT 和 Select 的作用是相同的)和语法,典型的 SQL 查询语句如
下所示:
SELECT [字段名] FROM [数据表名] WHERE [条件子句]
其中SELECT、FROM和WHERE都是SQL的关键字。SELECT代表查询操作,“字段名”表示返
回的记录集中所包含的字段,字段名可以使用通配符*,表示查询的数据表中的所有字段,“数据表
名”表示在哪个数据表中进行查询,“条件子句”为查询的条件。
了解了SQL的基本语法后,下面我们来设置Query1控件的SQL属性。在对象监视器中双击
Query1控件的SQL属性(该属性为TStrings*类型),打开字符串列表编辑器,在其中输入这样两句
“Select * From MP3Info”和“Order by FileName ASC”。注意第二句要另起一行,这样在后面的编程中
可以很方便地改变记录的排序方式。这两句合在一起的意思是获取MP3Info数据表中的所有记录,
并以FileName字段为基准按升序方式排序。除了指定Query1控件的SQL属性外,还要指定它在哪个
数据库中进行查询,将其Database属性设为别名MP3Collect。然后指定其Active属性为true,其它属
性值都接受缺省值。
DataSource控件从字面上可翻译为数据源控件,不过它与上一讲介绍的ODBC数据源可不是一
回事。DataSource控件是一个中间控件,它位于数据集控件(如Table控件或Query控件)和数据控
制控件(如DBGrid控件或DBEdit控件)之间,是联系两类控件的桥梁。DataSource控件最重要的属
性是它的数据集属性DataSet,在对象浏览器中点击该属性右侧的下拉式列表框,可以看到其中列出
了Table1和Query1,我们选中Query1,表示DataSource控件从Query1中获取数据。
DBGrid控件是一种常用的数据控制元件,它以表格的方式显示记录,表格中的行表示记录,
而列表示记录的字段。所有的数据控制元件都必须和某个DataSource控件相关联,才能获取所需要
的数据,因此我们在这里将DBGrid1控件的DataSource属性设为DataSource1。指定DBGrid1的数据
来源后,我们可以看到DBGrid1的表格中立即显示出相应的记录了。
缺省情况下,DBGrid1会显示数据集的全部字段,并以字段的名称显示在列标题中,我们可以
在设计时通过DBGrid控件的列编辑器修改列的数目、标题以及布局等。在对象浏览器中双击
Columns属性,打开列编辑器,此时列编辑器中的内容还是空的,因此我们在列编辑器中点击鼠标
右键,选择关联菜单中的“Add All Field”命令,先把数据集中的所有字段添加进来。由于我们不希
望将记录的编号显示出来,所以要删除其中的“ID”字段。
评论0
最新资源