对于大多数人来说这可能是一个很简单的问题。

nnwq 2003-02-23 07:45:48
使用AdoQuery,设置为缓存更新。

要实现:当添加或编辑一记录需要保存时,必须先检查当前表中是否有部份字段内容相同的记录,如没有则允许添加或保存所做的修改;

现在问题是:在检查过程中不应移动数据表指针(不能使用Locate或next),因为移动指针后就可以Post了!这是不对的。且如果检查是放在beforPost事件中,这样就会进入死循环!

注:所需检查的字段并非主键。
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiangsheng 2003-02-24
  • 打赏
  • 举报
回复
我是那少数的一部分人,你们说的我完全不懂。
nnwq 2003-02-24
  • 打赏
  • 举报
回复
ilang(中雨) RecordSet := ADOQuery1.Recordset;这是不行的,因为速度很慢。


DainelLee(Iinexperience) ,已有主键了,且为索引值。再说是‘部份字段’,不可能同时将多个字段作为索引吧!
DainelLee 2003-02-23
  • 打赏
  • 举报
回复
将数据库中的字段设置为唯一索引,让数据库来检测,你处理错误吧
ilang 2003-02-23
  • 打赏
  • 举报
回复
大抵可以这样
var
ATempADO: TCustomADODataSet;
begin
ATempADO := TCustomADODataSet.Create(nil);
try
with ATempADO do
begin
RecordSet := ADOQuery1.Recordset;
//检查数据是否重复代码
finally
ATempADO.Free;
end;
end;
ilang 2003-02-23
  • 打赏
  • 举报
回复
用另一个ADOQuery进行判断即可

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧