现有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;
但是执行后没有效果,于是最前面加了另外一部分代码(把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;
都读的是内容不同的图片 处理scan.tif文件的代码这里没贴
解决办法:
1、你把两侧执行的SQL语句查出来看一下是不是一样?
2、确认你每次读取的图片是不是相同?
总之这类问题仔细调试一下就可以解决的。