第十五章数据访问部件的应用及编程二内容摘要:

面的程序代码便可以为我们设定一个检索范围:。 {指定检索范围的起始记录 } := {为起始记录的 CustNo 字段指定字段值 }。 {指定检索范围的结束记录 } if 39。 39。 then :=。 {为结束记录的 CustNo 字段指定字段值 }。 {根据检索范围的起始、结束记录设定检索范围 } 注意上面的程序代码,在为结束记录的 CustNo 字段指定字段值时, 首先检查EndVal 的值是否为空,如果 EndVal 的值为空,那么设定的检索范围没有包含一条记录, 因为没有任何记录的字段值小于 NIL;如果 StartVal 的值为空,那么检索范围将从表中的第一条记录开始,因为表中任何记录的字段值都大于空(NIL)。 上述代码可以用 SetRange 方法改写 成: If 39。 39。 then ([].[])。 EditRangeStart 和 EditRangeEnd 方法的使用完全类似于 SetRangeStart 和SetRangeEnd 方法,只是调这两个方法是设定一个可编辑的范围。 又如:假设一个表中的一个索引包含两个字段 LastName 和 FirstName,我们为索引中的一个字段或多个字段指定相应的字段值,设定数据库表的 使用范围。 (39。 LastName39。 ).Asstring := 39。 Smith39。 上述代码设定的范围包括 LastName 字段的值大于或等于 Smith 的所有记录。 而下面的代码设定的范围则包括 LastName 字段的值大于或等于 Smith 且FirstName 字段的值大于或等于 39。 J39。 的记录。 (39。 LastName39。 ).Asstring := 39。 Smith39。 (39。 FirstName39。 ).Asstring := 39。 J39。 查找数据库表中的记录 如果想查找数据库表中的记录,必须想指定查找记录的一些字段的字段值,然后在表中进行检索,检索出与查找值相匹配的记录来。 如果我们是在 Paradox 或dBASE 数据库中的表中查找记录,那么查找值所对应的字 段必须是表中的关键字段或辅助索引字段。 如果查找 SQL 数据库服务器中的表,那么查找值必须是表的IndexFieldNames 属性中指定的字段。 Delphi 提供了两种方式在数据库表中查找记录: Goto 方式和 Find 方式。 这两种方式十分相似,它们的主要区别在于为查找指定查找值的方法不一样。 使用 Goto 方式进行数据查找使用的方法有 SetKey 方法、 GotoKey 方法和GotoNearest 方法。 其实际步骤如下: ① 确保要查找的字段是关键字段或辅助索引字段。 ② 调用 SetKey 方法把与表对应的 TTable 部件置成查找状态。 ③ 把查找值赋给相应的字段。 ④ 调用 GotoKey 方法,并测试它的返回值检验查找是否成功。 假设 Table1 对应的表中第一个字段是关键字段, Edit1 是应用窗体中的一个编辑框,用户可以通过 Edit1 输入查找值。 下面的代码将通过 Goto 方式进行查找。 {将 Table1 置成查找状态 } [0].AsString :=。 {指定查找值 }。 {进行查找 } 上面最后一行代码是根据用户指 定的查找值,在表中执行查找。 查找的结果有两种,也许成功也许失败,这是由调用 GotoKey 方法之后返回的布尔值来决定,如果返回 True,那么查找成功,并且记录指针会指向与查找值匹配的记录,如果返回 Fale,那么查找失败,记录指针的位置不发生变化。 下面的代码可以测试调用 GotoKey 方法之后的返回值,告知用户查找是否成功。 [0].AsString:= 39。 Smith39。 If not then ShowMessage(39。 记录 没找到 39。 ) 在这一段代码中,如果在表中没有找到第一个字段值为 Smith 的记录,该应用程序会弹出一个对话框告知用户 “ 记录没有找到 ”。 如果在表中存在多个关键字段或辅助索引中包含多个字段时,你在进行查找时,只想为第一个字段指定查找值,那么必须要设置 TTable 部件的 KeyFieldCount的属性值为 1。 如果想为多个字段指定查找值,只能为相邻的字段指定查找值,例如辅助索引中共有三个字段,那么我们只能为第一个字段、第一和第二个字段、第一和第二以及第三个字段指定查找值,而不能为第一和第三个字段指定查找值。 GotoNearest 方法的使用与 GotoKey 方法完全一样,只是它用于不精确查找,它不要求查找结果与查找值精确匹配,当表中有与查找值精确匹配的记录时,它将记录指针移到该记录处,当表中没有与查找值精确匹配的记录时,它会查找出与查找值最接近的记录,并将记录指针移到该记录处。 下面是应用 GotoNearest 方法的一段代码:。 [0].AsString:= 39。 Sm39。 执行上述代码后,若表中存在第一个字段值等于 Sm 的记录时,记录指针将移到该记录处,若表中不存在第一个字段值等于 Sm 的记录,而存在第一个字段值等于 Smith 的记录,那么记录指针会移到该记录处。 如果我们不是以数据库表中的关键字段作为查找字段,我们也可以为 TT。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。