免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3164 | 回复: 3
打印 上一主题 下一主题

Java 存取图片到Sybase image 字段 的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-10-24 16:59 |只看该作者 |倒序浏览
为什么我只能存取32K的数据,大于32K的数据就不行
建表是这样建的 create table (len int ,data image )
java 代码如下,请指教
<%@ page contentType="text/html; charset=GBK" %>;
<%@ page import="java.sql.*"%>;
<%@ page import="java.lang.*"%>;
<%@ page import="jbsybtest.DBBean"%>;
<%@ page import="jbsybtest.QueryBean"%>;
<%@ page import="java.io.*"%>;
<%
    String getType = "";
    System.out.println(pageContext.getRequest().getParameter("Type");
    if (pageContext.getRequest().getParameter("Type"!=null)
    {
      getType = pageContext.getRequest().getParameter("Type".toString();

    if (getType.equals("insert"){
        //file size = 69576 这是我指定的一个文件,为了方便
        java.io.File file = new java.io.File("C:\\1.jpg";

        java.io.FileInputStream fis = new java.io.FileInputStream(file);
        System.out.println((int) file.length());

        int l = (int) file.length();
        Integer intLen = new Integer(l);


        ResultSet result = null;
        String mSql = null;
        PreparedStatement prestmt = null;

        DBBean DBLink = new DBBean();
        DBLink.openDBConnect();
        mSql = "insert into ss (id ,data) values (?,?)";
        prestmt = DBLink.getConn().prepareStatement(mSql);
        prestmt.setInt(1,1);
        prestmt.setBinaryStream (2, fis , l );
        
        DBLink.setAutoCommit(true);
        prestmt.executeUpdate();
        DBLink.getConn().commit();
    } else {
        int bytesum=0;
        int byteread=0;
      ResultSet result=null;
        String Sql=null;
        PreparedStatement prestmt=null;
        DBBean DBLink = new DBBean();
        DBLink.openDBConnect();

      Sql="select * from dd";
        result=DBLink.executeQuery(Sql);
        result.next();

        java.io.InputStream inStream=result.getBinaryStream("filedata";
        java.io.FileOutputStream fs=new java.io.FileOutputStream("c:\\xx.jpg";

        byte[] b = new byte[69576];//file size
        int i = 0;
        final int unitlen = 16384;
        int cbread;
        int l = b.length;
        for ( i =0;i < l; i+=unitLen){
          if (l - i < cbread) {
            cbread = inStream.read(b,i,l-i);
          }else{
            cbread = inStream.read(b,i,unitLen);
          }
          System.out.println(cbread);
        }

        fs.write(b);
        fs.close();
    }}

%>;

论坛徽章:
0
2 [报告]
发表于 2003-10-24 21:46 |只看该作者

Java 存取图片到Sybase image 字段 的问题

有一个会话级参数 设置
set textsize 你看看,可以修改这个参数达到大于 32k 的数据存取

论坛徽章:
0
3 [报告]
发表于 2003-10-25 12:16 |只看该作者

Java 存取图片到Sybase image 字段 的问题

那应该怎么设呢?

论坛徽章:
0
4 [报告]
发表于 2003-10-25 12:38 |只看该作者

Java 存取图片到Sybase image 字段 的问题

非常感谢,已经成功了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP