起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 196|回复: 7

【搞定】applyupdates出错**

[复制链接]
发表于 2007-4-17 14:54:14 | 显示全部楼层 |阅读模式
var lvForm:TSRMM ;
    v_sql,displayname,ptime1,ptime2,v_status :string;
    v_flag:integer;
    lContextCurrent:TContextCurrent;
begin
if query1.RecordCount<=0 then
begin
   dialogs.ShowMessage('记录为空,请先查询记录');
   exit;
end;
ptime1:=FormatDateTime('yyyy-mm-dd hh:mm:ss',packtime1.DateTime);
ptime2:=FormatDateTime('yyyy-mm-dd hh:mm:ss',packtime2.DateTime);
try
   lvForm:=TSRMM.Create(context);
   if lvForm.ShowModal=Business.Forms.Controls.mrOk then
   begin
     query2.Close;
     query2.Open;
     query2.Edit;
     query1.First;
     while not query1.Eof  do
     begin
      with query2 do
        begin
        insert;
        FieldByName('SERIES').AsString:=query1.FieldByName('SERIES').AsString;
        FieldByName('JOBNO').AsString:=query1.FieldByName('JOBNO').AsString;
        FieldByName('PCNO').AsString:=query1.FieldByName('PCNO').AsString;
        FieldByName('PKNO').AsString:=query1.FieldByName('PKNO').AsString;
        FieldByName('KG').AsFloat:=query1.FieldByName('KG').AsFloat;
        FieldByName('YARD').AsFloat:=query1.FieldByName('YARD').AsFloat;
        FieldByName('LB').AsFloat:=query1.FieldByName('LB').AsFloat;
        FieldByName('METER').AsFloat:=query1.FieldByName('METER').AsFloat;
        FieldByName('COLORRGB').AsString:=query1.FieldByName('COLORRGB').AsString;
        FieldByName('ADJUST').AsString:=query1.FieldByName('ADJUST').AsString;
        FieldByName('PACKTIME').AsDateTime:=query1.FieldByName('PACKTIME').AsDateTime;
        FieldByName('STATUS').AsString:=query1.FieldByName('STATUS').AsString;
        FieldByName('STOWTYPE').AsString:=query1.FieldByName('STOWTYPE').AsString;
        FieldByName('STOWAGE').AsString:=query1.FieldByName('STOWAGE').AsString;
        FieldByName('FABNO').AsString:=query1.FieldByName('FABNO').AsString;
        FieldByName('PARKNO').AsString:=query1.FieldByName('PARKNO').AsString;
        FieldByName('PARKSEQ').AsString:=query1.FieldByName('PARKSEQ').AsString;
        FieldByName('DELNO').AsString:=query1.FieldByName('DELNO').AsString;
        FieldByName('DELSEQ').AsString:=query1.FieldByName('DELSEQ').AsString;
        FieldByName('DEFECT').AsString:=query1.FieldByName('DEFECT').AsString;
        FieldByName('RATE').AsString:=query1.FieldByName('RATE').AsString;
        FieldByName('NEEDFABRIC').AsString:=query1.FieldByName('NEEDFABRIC').AsString;
        FieldByName('LAYOUT').AsString:=query1.FieldByName('LAYOUT').AsString;
        FieldByName('CLASSNO').AsString:=query1.FieldByName('CLASSNO').AsString;
        FieldByName('SHIFT').AsString:=query1.FieldByName('SHIFT').AsString;
        FieldByName('DEPOT').AsString:=query1.FieldByName('DEPOT').AsString;
        FieldByName('ISDEF').AsString:=query1.FieldByName('ISDEF').AsString;
        FieldByName('SEQNO').AsString:=query1.FieldByName('SEQNO').AsString;
        FieldByName('stuffNO').AsString:=query1.FieldByName('stuffNO').AsString;
        FieldByName('shelf').AsString:=query1.FieldByName('shelf').AsString;
        FieldByName('defpoint').AsString:=query1.FieldByName('defpoint').AsString;
        FieldByName('MEMO').AsString:=query1.FieldByName('MEMO').AsString;
        //FieldByName('DEFPOINTS').AsInteger:=query1.FieldByName('DEFPOINTS').AsInteger;
        end;
      query1.Next;
     end ;
     try
       query2.ApplyUpdates;
       v_status:='备份到server243成功';
     except
       v_status:='备份server243失败';
       dialogs.ShowMessage(v_status);
       exit;
     end;

     v_sql:='delete from ledwaybc.cxd where (delno is not null) and ledwaybc.cxd.packtime between '''+ptime1+''' and '''+ptime2+'''';
     v_flag:= Connection1.ExecuteSQL(v_sql);
     lContextCurrent:=TContextCurrent.Create(Context);
     displayname:=lContextCurrent.Operator.DisplayName;
     if v_flag<>-1 then
     begin
        //v_status:='删除server185中ledwaybc.CXD中包装时间从'''+ptime1+''' 到 '''+ptime2+''' 记录成功,'''+v_status+'''' ;
        v_status:='删除server185中ledwaybc.CXD中包装时间从'+ptime1+' 到 '+ptime2+' 记录成功,'+v_status+', 记录数量为'+Sysutils.IntToStr(v_flag)   ;
        v_sql:='insert into dbo.htt_deletedetail(username,demo,deltype) values('''+displayname+''','''+v_status+''',''备份删除'')';
        connection1.ExecuteSQL(v_sql);
        dialogs.ShowMessage(v_status);
     end
     else
     begin
       v_status:='删除server185中ledwaybc.CXD中包装时间从'+ptime1+' 到 '+ptime2+' 记录成功,'+v_status+',记录数量为'+Sysutils.IntToStr(v_flag)   ;
       v_sql:='insert into dbo.htt_deletedetail(username,demo,deltype) values('''+displayname+''','''+v_status+''',''备份删除'')';
       connection1.ExecuteSQL(v_sql);
       dialogs.ShowMessage(v_status);
      end;
   end;
   finally
     lvForm.Free
   end ;
   query1.Refresh;
end;


我运行以上程序出现错误
回复

使用道具 举报

 楼主| 发表于 2007-4-17 14:56:19 | 显示全部楼层
运行数据维护的时候发生异常:invoke bath method error,error occur during invoke applyupdates method ,  在关键字‘null’附件有语法错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-17 14:59:14 | 显示全部楼层
query2.ApplyUpdates; 出错
query2.commandtext:=‘select top 1 * from dbo.cxd_dye '改为
query2.comandtext:='select * from dbo.cxd_dye'就没问题 为什么会这样呢  可是我这边如果不加
'top 1'的话,数据量很大
回复 支持 反对

使用道具 举报

发表于 2007-4-17 15:03:48 | 显示全部楼层
出什么错误?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-17 15:20:34 | 显示全部楼层
运行数据维护的时候发生异常:invoke bath method error,error occur during invoke applyupdates method ,  在关键字‘null’附件有语法错误
回复 支持 反对

使用道具 举报

发表于 2007-4-17 17:04:10 | 显示全部楼层
设置一下query的更新选项:
如:
Query1.UpdateOptions.InsertSQL := 'Insert into FLOWAND Values (:Guid, :FDate, :FDisplayName, :FOperator)';
回复 支持 反对

使用道具 举报

发表于 2007-4-23 11:05:26 | 显示全部楼层
楼主,问题解决了吗?
回复 支持 反对

使用道具 举报

发表于 2007-5-8 11:04:26 | 显示全部楼层
由于长时间没有反馈,先结贴了。
有问题请开新贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-9 01:27 , Processed in 0.041109 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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