请问关于TClientDataSet中如何读取全部记录中某一列的值?(100分)

  • 主题发起人 主题发起人 juziling
  • 开始时间 开始时间
J

juziling

Unregistered / Unconfirmed
GUEST, unregistred user!
请问关于TClientDataSet中如何读取全部记录中某一列的值,前提是不移动指针和要把过滤掉时记录也读出来。
因为,我要添加一条记录,需判断当前行的编号是否重复(不想在最后保存时在提示用户,编号重复)。在有些时候数据集中数据时被过滤过的。比如:人员表中,我过滤掉男性人员后,添加一位员工时就要判断该员工的编号是否在整个人员表中是否已经存在。
谢谢
 
不想在保存时提示用户,你可以在DbEdit的OnExit事件里面写判断嘛,用一个SQL语句去查询是否有重复编码的记录然后提示用户就行了。
 
修罗:
对于相当多的记录和三层用SQL去查询时很耗时间的。既然数据已经在客户端了,何必去服务器端查询;)
 
用兩個clientdataset 吧...要不就自動產生編號來被免出現重複..
 
用locate查找,然后再定位到当前修改的记录。
 
如果你用的sql语句查询,那么本地数据是不完整的,你必须用一条sql语句来判断.
如果你用的是filter,你可以这样:
cds2:=Tclientdataset.create(self);
cds2.CloneCursor(clientdataset1,true);
if cds2.locate(....) then
....
cds2.free;
 
如果你用的是SQL,则你在第一次SELECT出来的数据是不一定完全的,有可能还有一部份未SELECT出来,所以你应该另外写一个SQL语句在数据库中直接查找看是否有重复的记录。
 
还是用两个clientdataset好,一个判断,一个数据操作
 
后退
顶部