DELPHI基础教程:数据访问部件的应用及编程(二)[2]

 我来答
黑科技1718
2022-10-01 · TA获得超过5856个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:80.8万
展开全部

  Exclusive属性

  该属性是一个布尔型属性 它标明是否以共享方式打开数据库表 如果Exclusive的值为True 当打开一个数据库表时 其他用户就不能访问该表了 若Exclusive的值为False 将以共享方式打开一个数据库表 显然不能将其他用户正在访问的表以互斥方式打开(设定Exclusive的值为True) 对于SQL数据库服务器上的数据库表 当以互斥方式被一个用户打开时 其他用户可以读取该表中的数据 但不能修改表中的数据 当然有些数据库服务器不支持这种方式 这要具体参看有关的数据库服务器的文档

  ReadOnly属性和CanModify属性

  这两个属性都是布尔型属性 ReadOnly属性决定用户是否能够对表中的数据进行读写 ReadOnly为True 时 用户只能读取表中的数据 ReadOnly为False时 用户可以读写表中的数据(假设数据库已授权用户能够读写其中的数据库表) CanModify属性是一个只读属性 用户不能够修改其属性值 它反映了用户对数据库表拥有的实际特权 当ReadOnly为True时CanModify将自动地被置为False 当ReadOnly为False时 如果数据库允许用户对表进行读写时 CanModify为True 否则CanModify为False 当CanModify为False时 数据库表是只读的 但不能将其置成编辑状态或插入状态 当CanModify属性为True时 虽然数据库表对应的数据集部件可以置成编辑和插入状态 但是这并不意味着用户能够插入和修改表中的数据 因为这还要受到其他因素的限制 如用户对SQL数据库服务器的访问权限等的限制

  TTable部件还有其他一些属性请参看联机帮助

   TTable部件的方法及应用

   设定数据库表的使用范围

  在我们实际应用中的数据库表中常常存放著大量的数据信息 其中包含着很多的记录 而我们的应用程序可能只需对其中一部分记录进行操作 因此 为应用程序指定一个使用范围就显得特别重要了 为方便有效地指定数据库表的使用范围Delphi为TTable部件提供了下列方法供用户使用

  ● SetRangeStart和EditRangeStart方法

  ● SetRangeEnd和EditRangeEnd方法

  ● SetRange([Start Values] [End Values])方法

  ● ApplyRange方法

  ● CancelRange方法

   SetRangeStart方法

  用于指定检索范围的起始记录 调用SetRangeStart方法之后 可以为起始记录的一个或多个字段指定相应的字段值 SetRangeEnd方法用于指定检索范围的结束记录 调用SetRangeEnd方法之后 可以为结束记录的一个或多个字段指定相应的字段值

   SetRange方法

  SetRange方法包含了SetRangeStart和SetRangeEnd方法的功能 它可以同时指定检索范围的起始和结束记录 起始记录和结束记录的字段值以数组形式送给SetRange 其基本形式是

  SetRange([起始值] [结束值])

   ApplyRange方法

  根据SetRangeStart SetRangeEnd或SetRange方法说明的检索范围的起始和结束记录 具体设定一个检索范围 调用ApplyRange方法之后 应用程序只能对检索范围内的记录进行有关的操作

   CancelRange方法

  CancelRange方法的作用与ApplyRange方法的作用是相反的 这是取消为表设定的检索范围 调用CancelRange方法之后应用程序可以对表中全部记录进行有关的操作

  在这里要注意的是 如果我们使用的是paradox表或dBASE表 在调用SetRangeStart SetRangeEnd以及SetRange方法时 只能为表中的索引字段或定义的索引指定相应的字段值 以设定检索范围 如果使用SQL数据库服务器中的数据库表 可以为IndexFieldNames属性中指定的字段指定相应的字段值

  例如 假设Table 与Customer DB表相连 Customer DB中一个索引字段是CustNo 同时应用窗体中有两个编辑框StartVal和EndVal用于输入起始 结束记录的字段CustNo的值 下面的程序代码便可以为我们设定一个检索范围

  Tabel SetRangeStart; {指定检索范围的起始记录}

  Tabel CustNo AsString:= StartVal Text {为起始记录的CustNo字段指定字段值}

  Tabel SetRangeEnd; {指定检索范围的结束记录}

  if EndVal Text <> then

  Tabel CustNo AsString := EndVal Text; {为结束记录的CustNo 字段指定字段值}

  Tabel ApplyRange; {根据检索范围的起始 结束记录设定检索范围}

  注意上面的程序代码 在为结束记录的CustNo字段指定字段值时 首先检查EndVal的值是否为空 如果EndVal的值为空 那么设定的检索范围没有包含一条记录 因为没有任何记录的字段值小于NIL;如果StartVal的值为空 那么检索范围将从表中的第一条记录开始 因为表中任何记录的字段值都大于空(NIL)

  上述代码可以用SetRange方法改写成

  If EndVal Text <> then

  Tabel SetRane([StartVal Text] [EndVal Text])

  Table ApplyRange;

  EditRangeStart和EditRangeEnd方法的使用完全类似于SetRangeStart和SetRangeEnd方法 只是调这两个方法是设定一个可编辑的范围

  又如 假设一个表中的一个索引包含两个字段LastName和FirstName 我们为索引中的一个字段或多个字段指定相应的字段值 设定数据库表的使用范围

  Table SetRangeStart;

  Table FieldByName( LastName ) Asstring := Smith ;

  Table SetRangeEnd;

  Tabel ApplyRange;

  上述代码设定的范围包括LastName字段的值大于或等于Smith的所有记录 而下面的代码设定的范围则包括LastName字段的值大于或等于Smith且FirstName字段的值大于或等于 J 的记录

  Table SetRangeStart;

  Table FieldByName( LastName ) Asstring := Smith ;

  Table FieldByName( FirstName ) Asstring := J ;

  Table SetRangeEnd;

  Tabel ApplyRange;

   查找数据库表中的记录

  如果想查找数据库表中的记录 必须想指定查找记录的一些字段的字段值 然后在表中进行检索 检索出与查找值相匹配的记录来 如果我们是在Paradox或dBASE数据库中的表中查找记录 那么查找值所对应的字段必须是表中的关键字段或辅助索引字段 如果查找SQL数据库服务器中的表 那么查找值必须是表的IndexFieldNames属性中指定的字段

lishixinzhi/Article/program/Delphi/201311/25158

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式