我用sql2000,delphi6.0 的ado执行update,update的对象应该在表中都有,但是如果update语句要操作的对象的主键CreateTime的值在数据库中并不存在,比如通过MyMeterReadingTask.CreateTime输入一个时间,肯定数据库中是没有的,但是delphi和sql并不报错,我该怎样统计最后真正update了多少条记录,失败了多少条,失败的数据是哪几条,有没有简单的方法.
Sql.Add('update MeterReadingTask set OperatorNumber=:MyOperatorNumber,HHUOperatorNumber=:MyHHUOperatorNumber,'
+'HHUNumber=:MyHHUNumber,TotalCount=:MyTotalCount,IsComplete=:MyIsComplete,CompleteTime=:MyCompleteTime,'
+'CompleteCount=:MyCompleteCount,HandInputCount=:MyHandInputCount,FailCount=:MyFailCount'
+' where CreateTime=:MyCreateTime');
end;
parameters.ParamByName('MyCreateTime').Value :=MyMeterReadingTask.CreateTime;
parameters.ParamByName('MyOperatorNumber').Value :=MyMeterReadingTask.OperatorNumber;
parameters.ParamByName('MyHHUOperatorNumber').Value :=MyMeterReadingTask.HHUOperatorNumber;
parameters.ParamByName('MyHHUNumber').Value :=MyMeterReadingTask.HHUNumber;
parameters.ParamByName('MyTotalCount').Value :=MyMeterReadingTask.TotalCount;
parameters.ParamByName('MyIsComplete').Value :=MyMeterReadingTask.IsComplete;
parameters.ParamByName('MyCompleteTime').Value :=MyMeterReadingTask.CompleteTime;
parameters.ParamByName('MyCompleteCount').Value :=MyMeterReadingTask.CompleteCount;
parameters.ParamByName('MyHandInputCount').Value :=MyMeterReadingTask.HandInputCount;
parameters.ParamByName('MyFailCount').Value :=MyMeterReadingTask.FailCount;
execSql;
Sql.Add('update MeterReadingTask set OperatorNumber=:MyOperatorNumber,HHUOperatorNumber=:MyHHUOperatorNumber,'
+'HHUNumber=:MyHHUNumber,TotalCount=:MyTotalCount,IsComplete=:MyIsComplete,CompleteTime=:MyCompleteTime,'
+'CompleteCount=:MyCompleteCount,HandInputCount=:MyHandInputCount,FailCount=:MyFailCount'
+' where CreateTime=:MyCreateTime');
end;
parameters.ParamByName('MyCreateTime').Value :=MyMeterReadingTask.CreateTime;
parameters.ParamByName('MyOperatorNumber').Value :=MyMeterReadingTask.OperatorNumber;
parameters.ParamByName('MyHHUOperatorNumber').Value :=MyMeterReadingTask.HHUOperatorNumber;
parameters.ParamByName('MyHHUNumber').Value :=MyMeterReadingTask.HHUNumber;
parameters.ParamByName('MyTotalCount').Value :=MyMeterReadingTask.TotalCount;
parameters.ParamByName('MyIsComplete').Value :=MyMeterReadingTask.IsComplete;
parameters.ParamByName('MyCompleteTime').Value :=MyMeterReadingTask.CompleteTime;
parameters.ParamByName('MyCompleteCount').Value :=MyMeterReadingTask.CompleteCount;
parameters.ParamByName('MyHandInputCount').Value :=MyMeterReadingTask.HandInputCount;
parameters.ParamByName('MyFailCount').Value :=MyMeterReadingTask.FailCount;
execSql;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货