日期:2014-05-18  浏览次数:20804 次

image 更新出错
急啊,各位老大,帮帮忙   !!
主要代码如下:
我更新数据库image类型字段,当数据库有一条合乎要求的数据更新时,没有问题,它会把对应的图片插入对应的记录,但是当有两条合乎要求的记录要更新时,它就会把第二张图片都插入到要更新的两条记录的字段,即是它把本该插入第二条记录的图片都插入到两条要更新的数据里面了.请教各位,是什么原因.急,搞了很多天了.
问题:  
while(dbi.rsNext())   {   //   *
log( "相片的处理   存在本地完毕 ")   ;
i++   ;
String   imagename= " "   ;
if(i%2==0)
imagename= "d:/test.jpg "   ;
else  
imagename= "d:/test2.jpg "   ;
log( "imagename   :   "+imagename)   ;
//   InputStream   in1   =   dbi1.rsGetBinaryStream( "C1101 ");   //照片
//InputStream   in1   =   dbi.rsGetBinaryStream( "C1101 ");   //   照片
in1   =   dbi.rsGetBinaryStream( "C1101 ");   //   照片
try   {
//com.ionglobal.fms.FileManager.saveFile(in1, "d:/test.jpg ");   //   把大字段内容保存到文件
        com.ionglobal.fms.FileManager.saveFile(in1,imagename);   //   把大字段内容保存到文件
}   catch   (Exception   E)   {
System.out.println(E.getMessage());
}

log( "相片的处理存在本地完毕 ")   ;

log( "更新照片字段   注当显示       相片大小:   时才更新有效 ");
String   sqlimageupdate   =   " ";
sqlimageupdate=   "update   student..A01   set   student..A01.A0119=?   where   student..A01.A0101= ' "+   name   +   " '   and   student..A01.AGB006= ' "   +   id   +   " '   ";
log( "sqlimageupdate   :   "+sqlimageupdate)     ;
try   {
PreparedStatement   p_stmt   =   dbi.getPreparedStatement(sqlimageupdate);
//   p_stmt.setInt(1,2);   //设置字段iID   为1
//File   file   =   new   File( "d:/test.jpg ");
File   file   =   new   File(imagename);
log( "imagename   :   "+imagename)   ;
if   (file.length()   >   0.0)   {
log( "相片大小   :   "   +   file.length());
InputStream   in   =   new   FileInputStream(file);
p_stmt.setBinaryStream(1,in,new   Long(file.length()).intValue());   //   设置字段bFile
p_stmt.execute();
in.close();
p_stmt.close();
}
}   catch   (Exception   e)   {
e.printStackTrace();
}
log( "   更新照片字段完毕   ");

}
dbi.rsClose();


------解决方案--------------------
菜鸟 帮不上忙
------解决方案--------------------
你生成2条sql语句,然后用事务提交