<%@page contentType="text/html; charset=GBK"%>
<%@page import="java.sql.*,java.io.*"%>
<html>
<head>
<title>jsp5</title>
</head>
<body bgcolor="#ffffff">
<%
  try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=master";
    String user = "daryl715";
    String password = "daryltl310";
    Connection conn = DriverManager.getConnection(url, user, password);
    Statement stmt = conn.createStatement();  
    ResultSet rs=stmt.executeQuery("select * from student");
    byte[] buff1=new byte[4096];
    byte[] buff2=new byte[4096];
    while(rs.next()){
      InputStream fin1=rs.getAsciiStream(1);
      InputStream fin2=rs.getBinaryStream(1);
      for(;;){
        int size1=fin1.read(buff1);
        int size2=fin2.read(buff2);
        if(size1==-1){break;}
        if(size2==-1){break;}
    
      }
    }
  rs.close();
  stmt.close();
  conn.close();
  } catch (Exception e) {
    e.printStackTrace();
  }
%>
</body>
</html>爆出java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unsupported data conversion. at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.base.BaseData.unsupportedConversion(Unknown Source) at com.microsoft.jdbc.base.BaseData.getBinaryStream(Unknown Source) at com.microsoft.jdbc.base.BaseResultSet.getBinaryStream(Unknown Source) at org.apache.jsp.jsp5_jsp._jspService(org.apache.jsp.jsp5_jsp:65) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)异常,是什么引起”不支持的数据转换“呢
我用的时SQL Server JDBC Driver

解决方案 »

  1.   

    InputStream fin1=rs.getAsciiStream(1);
          InputStream fin2=rs.getBinaryStream(1);
    为什么要这么用呢?
      

  2.   

    to aid666(Ctrl+Shift+S)
    是为了实现getAsciiStream(1)和getBinaryStream(1)两种读取模式而已
    to  wu_bjcn(咖啡的味道)
    请说出你的看法,我没觉得有什么怪异的
      

  3.   

    有可能就是数据库不支持这种数据流格式了..
    我记得数据库网络传输都是按照一定的编码格式,比如ISO-8859-1
    ResultSet已经是非常高层的API,你一定要他按照二进制格式来传,也许就会报错。不用这样写也可以的嘛