Oracle jdbc 插入blob字段出现的问题

bengerming 2001-08-08 11:06:04
我用Oracle jdbc 1.2 再JSP中操作8.1.7 数据库时,字符字段可以插进和取出,

但当插进和取出图片时就不错,

请各位高手赐教

我能给出的最高分只有27分,分数不高,但请教的心情却是真诚的
...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzwrj 2001-08-17
  • 打赏
  • 举报
回复
public boolean Insert(MyPictureItem rItem,Vector rV1,Vector rV2)
{
boolean lRtnflg = false;
String lRS_SEQ = "MyPicture_SEQ";
String lRS_ADD = "MyPicture_ADD";

try
{
gSQL = "SELECT FPCT630_S1.NEXTVAL AS PID FROM DUAL";
gDBase.dbrSQL(lRS_SEQ,gSQL);
if(gDBase.dbrIsSucc())
{
rItem.setPid(gDBase.dbrGetInt(lRS_SEQ,"pid"));
gDBase.dbrCloseRS(lRS_SEQ);
gSQL = "INSERT INTO FPCT630 VALUES("+rItem.getPid()+","+rItem.getGid()+","+rItem.getUpid()+",'"+rItem.getName()+"','"+rItem.getDesp()+"',"+rItem.getCatid()+", EMPTY_BLOB(),EMPTY_BLOB(),'"+rItem.getExtfile()+"',"+rItem.getPid()+",1,SYSDATE,SYSDATE,1,'"+rItem.getPctpub()+"',"+rItem.getPctsize()+")";
//gSysLog.WriteLog("MyPicture","Insert()","EXCPT",gSQL);
gDBase.dbrBeginTran();
gDBase.dbrExec(gSQL);
//gDBase.dbrCommitTran();
gSQL = SelectStr(rItem.getPid());
gDBase.dbrSQL(lRS_ADD,gSQL,ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
if(gDBase.dbrIsSucc()||gDBase.dbrIsEOF())
{
gBlob = gDBase.dbrGetBlob(lRS_ADD,"PICTURE");
try{
OutputStream outstream = gBlob.getBinaryOutputStream();
Vector v = rV1;
byte[] bAtt = null;
for(int i=0;i<v.size();i++)
{
bAtt = (byte[])v.elementAt(i);
outstream.write(bAtt,0,bAtt.length);
}
outstream.close();
gDBase.dbrUpdateBlob(lRS_ADD,"picture",gBlob);
}catch(Exception ex){ex.printStackTrace();gErrMesg+="[InsertPicture()][PICTURE]"+ex;}

gBlob = gDBase.dbrGetBlob(lRS_ADD,"THPCT");
try{
OutputStream outstream = gBlob.getBinaryOutputStream();
Vector v = rV2;//gUb.getAtt(gUb.PCT_WAP);
byte[] bAtt = null;
for(int i=0;i<v.size();i++)
{
bAtt = (byte[])v.elementAt(i);
outstream.write(bAtt,0,bAtt.length);
}
outstream.close();
gDBase.dbrUpdateBlob(lRS_ADD,"thpct",gBlob);
}catch(Exception ex){ex.printStackTrace();gErrMesg+="[InsertPicture()][THPCT]"+ex;}

gDBase.dbrUpdate(lRS_ADD);
gDBase.dbrCommitTran();
lRtnflg = true;
}
gDBase.dbrCloseRS(lRS_ADD);
return lRtnflg;
}
else
{
gDBase.dbrCloseRS(lRS_SEQ);
}
return lRtnflg;
}
catch(SysExcpt e)
{
gSysLog.WriteLog("MyPicture","Insert()","EXCPT",e.toString());
gErrMesg += e;
try{
gDBase.dbrCloseRS(lRS_ADD);
}catch(SysExcpt ex)
{
return lRtnflg;
}
}
return true;
}

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧