F
fstao
Unregistered / Unconfirmed
GUEST, unregistred user!
数据库Mssql7,有两个主从表dbo.master(masterid,name)和dbo.detail(id,detailid,PH,
其中detailid关联masterid,PH是编号,是人为输入数据,是字符型。)
我用Tquery+TupdateSql处理数据,其中QueryMaster(Tquery)连接dbo.master和QueryDetail(Tquery)
连接dbo.Detail,并且设置好主从关系。QueryMaster和QueryDetail的CachedUpdate都为True,
QueryMaster的AfterPost事件为:
Database1.StartTransaction;
try
querymaster.ApplyUpdates;
Querydetail.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
querymaster.CommitUpdates;
querydetail.commitupdates;
Querydetail的AfterPost没有写任何事件。
当querymaster.insert时,在从表写数据,字段PH是人工输入,我要求整个dbo.detial的Ph不能有重复数据。
由于我把queryDetail的CachedUdate=true,只要querymaster没有post,那么Querydetail的数据还没有真正
提交给数据库,那么这些数据是暂时放在缓冲,那我如何既要判断字段Ph有没有重复,又要判断已经提交到数据库
的字段Ph数据有没有重复?还有是多用户同时操作这个主从表,我也要判断与另外一个用户有没有Ph重复。那
我该如何写这个程序?有没有简单的方法?
其中detailid关联masterid,PH是编号,是人为输入数据,是字符型。)
我用Tquery+TupdateSql处理数据,其中QueryMaster(Tquery)连接dbo.master和QueryDetail(Tquery)
连接dbo.Detail,并且设置好主从关系。QueryMaster和QueryDetail的CachedUpdate都为True,
QueryMaster的AfterPost事件为:
Database1.StartTransaction;
try
querymaster.ApplyUpdates;
Querydetail.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
querymaster.CommitUpdates;
querydetail.commitupdates;
Querydetail的AfterPost没有写任何事件。
当querymaster.insert时,在从表写数据,字段PH是人工输入,我要求整个dbo.detial的Ph不能有重复数据。
由于我把queryDetail的CachedUdate=true,只要querymaster没有post,那么Querydetail的数据还没有真正
提交给数据库,那么这些数据是暂时放在缓冲,那我如何既要判断字段Ph有没有重复,又要判断已经提交到数据库
的字段Ph数据有没有重复?还有是多用户同时操作这个主从表,我也要判断与另外一个用户有没有Ph重复。那
我该如何写这个程序?有没有简单的方法?