关于ADO调用ACCESS数据库的两个小问题(100分)

  • 主题发起人 主题发起人 charles_zou
  • 开始时间 开始时间
C

charles_zou

Unregistered / Unconfirmed
GUEST, unregistred user!
1.用ADOtable连接Access数据库,当增加一条记录post后,立即删除这条记录,
会提示
"The specified row could not be located for updating:Some value may
have been changed since it was lost read."。
我只好用ADOtable的close/open/last来解决。请问有更好的方法吗?

2.在Access数据表中,有一个字段为date/time类型,怎样用SQL语句删除其值
为空的记录,我试过用"Delete from tablename where field=null",但不行。
 
1)需要这样吗
2)Delete from tablename where field is null
 
同意g622,非常简单
 
1、可以使用ADOquery来解决
2、“where field=null" 改为where field is null
 
我最先发贴子,结果却是最后一个,论坛太慢了!嘿嘿
 
那就把都分给zengr吧 :)
 
第一个问题怎样解决呢?
这是我在测试时发现的问题
 
提交了的用Delete 的SQL
没提交的就用Delete过程,
我说的是三层,
两层都一样了
 
还有别的方法吗?
 
1)这种情况一般是用在输入数据校验的校验上
如果是这样,你应该在TDataSet.BeforePost里做判断
如果发现输入的数据不符合要求 就调用abort去撤消对数据的修改即可
具体请自己看delphi的帮助
 
关于第一个问题:
你在post 后再update一下就可以了,因为你只是存,而没有刷新数据库所以
你要delete时它找不到记录面报出你说的:
"The specified row could not be located for updating:Some value may
have been changed since it was lost read."。这种错误。
当你刷新后再delete 就不会出现这种事。
关于第二个问题:
你可以用:Delete from tablename where id in(select * from tablename where
field="")
 
接受答案了.
 
后退
顶部