从sybase数据库里读大二进制数,只能显示32K啊,我的图片有400多K大 if(rs.next()) {  
    InputStream in = rs.getBinaryStream(1); 
    byte[] buf=new byte[1024]; 
    while((len= in.read(buf))!=-1) { 
     response.getOutputStream().write(buf, 0, len); 
    } 
    response.getOutputStream().close(); 
    in.close(); 
   } 
只能显示一小段,看了下in的长度只有32k
怎么办,请高手帮忙

解决方案 »

  1.   

    存取的程序应该是用pb开发的都正常,不过查起来不方便要到处拷贝文件,所以想用jsp来实现查看功能,存图片暂时还用不上。
      

  2.   

    你确信数据库里面是400k的???呵呵!Sysbase 不熟,它应该也有BLOB类型吧!
      

  3.   

    楼主用的是ASE数据库吧。
    你在获取你的Connection之后,执行'set textsize 5120000',表示最大可接受5M的blob缓冲。
    这样再执行你上述代码就OK了。
      

  4.   

    加上'set textsize 5120000'也不行已经确认数据库中的大小正确,原程序是用pb开发的,用pbkill看了下代码:
    SELECTBLOB images INTO :lb_image FROM table WHERE name =:ls_name;
    j = len(lb_image)
    if  j<= 0 or isnull(j) then
    messagebox("提示","未设置图片")
    close(this)
    else
    p_1. setpicture(lb_image) 
    end if而且sybase没有blob的数据类型,在sybase中只能用image存取,用getBlob()报错,用getColumnTypeName()得出类型是LONGVARBINARY想不明白啊
      

  5.   

    java 不能用 selectblob 出错 
      

  6.   

    路过!个人用SQLServer和Oracle,没有用过Sysbase!!
    不能帮助楼主了!!
    只能帮楼主顶!!