电脑学习
COMPUTER STUDY
1999年 第4期 No.4 1999
用TTABLE控件搜寻表记录
余俊
Searching List Record with TTABLE Control
Yu Jun
1 TTable组件及应用
  开发数据库应用程序,Delphi3的TTable组件是最重要的组件,它封装了数据库表的概念,提供了访问数据库表的功能。它不仅能存取或删除表中已有的记录、插入新的记录,而且能搜寻表中的记录。TTable组件的方法中有关搜寻表记录的有:
  SetKey 将数据库表置于搜寻状态
  GotoKey 精确搜寻匹配项
  GotoNearest 搜寻最接近的匹配项
  FindKey 精确搜寻匹配项
  FindNearest 搜寻最接近的匹配项
  Locate 无索引搜寻
  首先创建一个Paradox数据库Cust.db,结构如下:
  字段名  类 型 长度
  CustNo  字符型  8
  Company 字符型  30
  Addr  字符型  30
  City  字符型  15
  State  字符型  20
  Country 字符型  20
  再以字段Custno建立主索引,以字段Company建立副索引名为ByCompany,然后向数据库添加一些数据供演示。
  创建应用工程
  在Delphi中创建一个新的应用工程,在窗体Form1上放置组件,并设置组件的属性和事件如表1。
表1
组件名称属性或事件设定值
Table1DatabaseName BCDEMOS
  TableName Cust.db
  Active True
DataSourcel DataSet Table1
DBGrid1DataSource DataSource1
Edit1   
Edit2   
Button1OnClick Button1 Click
2 各种搜寻方法
  双击Button1按钮在OnClick事件中输入不同的代码以实现各种不同的查询。DBGrid1控件的当前记录是搜寻到的表记录。
  1. 对数据库每一条记录进行循环搜寻,代码如下:
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  Table1.DisableControls;
  Table1.First;
  while f do
  begin
  if (Table1.FieldByName(′CustNo′). asString=Edit1.Text)
  and (Table1.FieldByName(′CITY′). asString=Edit2.Text) then
     Break;
  Table1.Next;
  end;
  Table1.EnableControls;
  end;
  2.对主索引关键字搜寻,代码如下:
  procedure TForm1.Button1Click(Sender:TObject);
  begin
  Table1.IndexName:=″;
  Table1.SetKey;
  Table1.FieldByName(′CustNo′).AsString:=edit1.Text;
  Table1.GotoKey;
  end;
  或者
  procedure TForm1.Button1 Click(Sender:TObject);
  begin
  Table1.IndexName:=″;
  Table1.FindKey([edit1.Text]);
  end;
  3.对副索引关键字搜寻,代码如下:
  procedure TForm1.Button1 Click(Sender: TObject);
  begin
  Table1.IndexName:=′ByCompany′;
  Table1.SetKey;
  Table1.FieldByName(′Company′). AsString:=edit1.Text;
  Table1.GotoKey;
  end;
  或者
  procedure TForm1.Button1 Click(Sender: TObject);
  begin
  Table1.IndexName:=′ByCompany′;
  Table1.FindKey([edit1.Text]);
  end;
  4. 无索引搜寻
  (1)对某个无索引的字段进行搜寻,代码如下:
  procedure TForm1.Button1 Click(Sender: TObject);
  begin
  Table1.Locate(′City′,,
  [loCaseInsensitive,loPartialKey]);
  end;truncate带查询
  (2)对多个无索引的字段进行搜寻,代码如下:
  procedure TForm1.Button1 Click(Sender: TObject);
  begin
  Table1.Locate(′City; State′,
  VarArray of([, ]),
  [loCaseInsensitive,loPartialKey]);
  end;
  以上在Delphi中搜寻数据库记录的各种方法,可以在不同情况中使用。程序在Windows95中文版、Delphi3环境下调试通过。
作者简介:余俊 青岛大学电气及自动化工程学院讲师(266071)
收稿日期:1998-12-10

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。