append. delete.insert.update.等是不是也带有post的动作?(50分)

  • 主题发起人 主题发起人 ttaa
  • 开始时间 开始时间
T

ttaa

Unregistered / Unconfirmed
GUEST, unregistred user!
问题提出是着这样的。当有一个表。
包含了主关键字段、自增加字段、外部约束字段等等。
在程序中用数据控制组件dbedit之类来对表编辑添加纪录。
那么当dbedit所输入的内容不符合规则时就出错。
这种情况经常发生。我想知道各位一般是怎样处理?
当使用DBNavigator时。
由于dbedit可以直接修改。修改之后,按DBNavigator的previous,next这样的按钮时。
也会将数据post到数据库中的吧。
这样更加容易出错了--因为用户只是可能无意中改动了。各位大虾怎样避免这些错误发生?
DBNavigator的First,previous,Next,Last自己带有post动作?
TQuery.TadoQuery之类的组件里使用append.delete.insert.update.等是不是也带有post的动作?
applyupdates.commitupdates有什么区别?
我已经查看了好几本书了。还是很困惑它们之间的关系。请大虾们赐教。
 
先设置成只读
然后。。。
 
先设为成只读,只有用户点击“修改”按钮后,才解除只读,提供修改。

 
如果为BDE连接,将BDE ADMINISTRATOR中数据库配置参数SQLPASSTHRU MODE 设置为SHARED
NOAUTOCOMMIT即可。
 
各位回答的太过简单,不是我所要的答案。可不可以比较详细的论述?
 
恩,听听。
 
->在程序中用数据控制组件dbedit之类来对表编辑添加纪录。
->那么当dbedit所输入的内容不符合规则时就出错。
->这种情况经常发生。我想知道各位一般是怎样处理?
这种情况一般可以在数据提交前在程序中进行完整性校验,也可以在DBMS中设置校验规则。
这两种方法各有优缺点。

->当使用DBNavigator时。
->由于dbedit可以直接修改。修改之后,按DBNavigator的previous,next这样的按钮时。
->也会将数据post到数据库中的吧。
->这样更加容易出错了--因为用户只是可能无意中改动了。各位大虾怎样避免这些错误发生?
这就不一定了,数据库有两种情况,一种返回的是live result set,这种如果按delphi控件的缺省
值则是自动更新的,这时就可以控制dbedit的只读属性来实现防止客户不经意的更改。另一种
情况是返回的是read-only result set.数据不是自动更新,即使你更改了dbedit中的值,一旦
next或previous更新折数据就丢失了,这种情况下要想更新就要用到updateSQL控件了。这方面的
情况可以在help中查Working with result sets这个主题

->DBNavigator的First,previous,Next,Last自己带有post动作?
->TQuery.TadoQuery之类的组件里使用append.delete.insert.update.等是不是也带有post的动作?
这也是根据数据集的read-only还是live来决定的。不能一概而论。

->applyupdates.commitupdates有什么区别?
在delphi的帮助中是这样的:
Call CommitUpdates to clear the cached updates buffer after both a successful call
to ApplyUpdates and a database component抯 Commit method. Clearing the cache
after applying updates ensures that the cache is empty except for records that
could not be processed and were skipped by the OnUpdateRecord or OnUpdateError
event handlers. An application can attempt to modify the records still in the
cache.
 
在help中我找不到Working with result sets。能告诉我怎样设置吗?
 
这个主题包含在Working with queries: Overview中,
可以通过tquery的requestlive属性的相关连接(see also)到达.
 
后退
顶部