现有2条记录,循环执行下面的的函数,分别传入sxh和archivesid两个参数
但是执行后没有效果,于是最前面加了另外一部分代码(把scan_wj字段清空的过程,这里略掉)
现在执行下面的代码,可以修改scan_wj字段的内容,但新的问题出来了,
循环修改2条记录,最后发现,2条记录的scan_wj的内容完全一样(传入的条件参数archives_id和jnml_sxh肯定不会有错)
。换了下执行方式,先运行程序,单独修改第1条记录,修改成功,关闭程序再运行,修改第2条记录,发现居然把第1条也修改了,而且内容和第2条的scan_wj字段一样。tmem := TMemoryStream.Create;
tmem.LoadFromFile(FileName+'SCAN.tif');ado.SQL.Clear;
ado.SQL.Text := 'update dasadmin.t_jnmlxx set scan_zjbh=:zjbh,scan_wj=:wj where archives_id=:archives_id  and jnml_sxh = :jnml_sxh';ado.Parameters.ParamByName('archives_id').Value := archivesid;
ado.Parameters.ParamByName('jnml_sxh').Value := sxh;
ado.Parameters.ParamByName('zjbh').Value := zjbh;
ado.Parameters.ParamByName('wj').LoadFromStream(tmem,ftBlob);
ado.ExecSQL;tmem.Free;
ado.Free;

解决方案 »

  1.   

    每次循环  tmem.LoadFromFile(FileName+'SCAN.tif'); 
    都读的是内容不同的图片  处理scan.tif文件的代码这里没贴
      

  2.   

    楼主从代码上看不出问题,应该是你逻辑有问题:
    解决办法:
    1、你把两侧执行的SQL语句查出来看一下是不是一样?
    2、确认你每次读取的图片是不是相同?
    总之这类问题仔细调试一下就可以解决的。
      

  3.   

    回2楼  处理的scan.tif 在一个目录下 调试的时候都去目录下看了那个scan的文件 图片内容确实不一样 至于第一问题   sql语句检查过  确实没有问题