在数据库备份的时候如果有对表的插入、修改操作,会不会有数据丢失的情况?
现在在数据库中有莫名其妙的字段出现空值,如何处理?

解决方案 »

  1.   

    程序执行的是简单的插入修改操作。例如:
    with ADOQuery4 do
          begin
            close;sql.Clear;
            sql.Add('insert into A_YSD_CL (YSDLSH,CH,TBZYSX,CDDDYLSH,SJZHSL) values(:YSDLSH,:CH,:TBZYSX,:CDDDYLSH,:SJZHSL)');
            Parameters.ParamByName('YSDLSH').Value:= S_lsh;
            Parameters.ParamByName('CH').Value:= Edit8.Text;
            Parameters.ParamByName('SJZHSL').Value:= Edit6.Text;
            Parameters.ParamByName('TBZYSX').Value:= Memo2.Text;
            Parameters.ParamByName('CDDDYLSH').Value:= I_CDDDYLSH;
            ExecSql;
            //修改车辆状态为在途
            close;sql.Clear;
            sql.Add('update A_CLB set CLZT=''在途'' where cph=:cph');
            Parameters.ParamByName('cph').Value:= Edit8.Text;
            ExecSql;
            ////修改运输单状态为4
            if StrToFloat(ADOQuery1.FieldByName('wzsl').AsString)-(sjzhzs+StrToFloat(Edit6.Text))<0.00000000000001 then
            begin
              close;sql.Clear;
              sql.Add('update A_YSD set djzt=4 where lsh=:YSDLSH');
              Parameters.ParamByName('YSDLSH').Value:= S_lsh;
              ExecSql;
            end;
          end;
    大部分的时候数据都是正常的。可是每个月都有几条记录丢失值。也不是全部都没有,就是某个字段没有值。
      

  2.   

    你测一下你的where条件是不是有问题,或者取值的时候有没有问题
      

  3.   

    没有特殊数据的,就是时间、数值这些。
    例如:我某一表中字段sfs上有一update触发器,当我修改sfs的值触发器触发,取得修改的值进行计算。正常情况下没有问题,可是总是有那么几次不能取得修改的值,产生了明显错误的结果。