起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 179|回复: 2

【搞定】通过locate判断数据是否存在,没有成功[问题]**

[复制链接]
发表于 2007-8-8 18:40:24 | 显示全部楼层 |阅读模式
while not eof do
          begin
               i:=FieldByName('SPBH').AsString.Trim();
               t:=FieldByName('CKM').AsString.Trim();
               if (DataSetBroker1.DataSet.Locate('SPBH',i,[]) = true) and (DataSetBroker1.DataSet.Locate('PDCK',t,[]) = true) then
               begin
               end
               else
                   begin
                        with inDataSet do
                             begin
                             sql.Text := 'insert SPZDPYPK (SPBH,PDCK,SPMC,KCL,DJ,JE,PH,DW) select SPBH,CKM,SPQM,KCSL,CBJJ,KCJE,TM,DW From SPKCZKB where CKM='''+ DataLocateComboBox1.Text +'''';
                             //open;
                             //close;
                             execute;
                             end;
                   end;
               Next;
          end;
当判断两字段都重复时,就不执行任何操作,否则执行添加语句,但是两字段重复的判断好象没有执行,而是直接跳过了,执行了否的判断,于是就出现插入重复键的错误.不知道locate是否执行判断了,或是我写的代码不对?
回复

使用道具 举报

发表于 2007-8-9 08:58:47 | 显示全部楼层
多个字段locate这样写
if DataSetBroker1.DataSet.Locate('字段1;字段2',Variants.VarArrayOf([值1,值2]),[]) then
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-9 10:36:30 | 显示全部楼层
搞定,谢谢lisb
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-25 09:57 , Processed in 0.037918 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表