<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>SQL Server</title>
</head>
<body>
<table>
<%
java.sql.Connection sqlCon; //数据库连接对象
java.sql.CallableStatement sqlStmt; //可调用语句对象
java.sql.ResultSet sqlRst; //结果集对象 java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句
java.lang.String inx="1";//装载JDBC-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //设置数据库连接字符串
strCon = "jdbc:odbc:imagedemo"; //连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","netmarch"); //准备SQL语句
strSQL = "{call P_PRO5(?)}"; //准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL); //设置输入参数
sqlStmt.setString(1,inx);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery(); //获取来自结果集中的数据
while (sqlRst.next())
{ byte b[] =sqlRst.getBytes(2);
response.setContentType("image/jpeg"); //假设为jpeg图片.如改为jpg则提示下载到磁盘
response.getOutputStream().write(b, 0, b.length);
%><%
}
//关闭记录集
sqlRst.close(); //关闭可调用语句对象
sqlStmt.close(); //关闭数据库对象
sqlCon.close();
%>
</table>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>SQL Server</title>
</head>
<body>
<table>
<%
java.sql.Connection sqlCon; //数据库连接对象
java.sql.CallableStatement sqlStmt; //可调用语句对象
java.sql.ResultSet sqlRst; //结果集对象 java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句
java.lang.String inx="1";//装载JDBC-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //设置数据库连接字符串
strCon = "jdbc:odbc:imagedemo"; //连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","netmarch"); //准备SQL语句
strSQL = "{call P_PRO5(?)}"; //准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL); //设置输入参数
sqlStmt.setString(1,inx);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery(); //获取来自结果集中的数据
while (sqlRst.next())
{ byte b[] =sqlRst.getBytes(2);
response.setContentType("image/jpeg"); //假设为jpeg图片.如改为jpg则提示下载到磁盘
response.getOutputStream().write(b, 0, b.length);
%><%
}
//关闭记录集
sqlRst.close(); //关闭可调用语句对象
sqlStmt.close(); //关闭数据库对象
sqlCon.close();
%>
</table>
</body>
</html>
这种方法可以实现,但是在此网页中只能返回图片,response.setContentType("image/jpeg");
不能返回“text/html”格式呀
有没有更好的方法可以显示图片又可以显示html脚本。
解决马上给分!
实际对于浏览器来说,也是这么处理的。
我在sqlserver2000+sqlserver for JDBC DRIVER环境下调试,无法正确显示图像(显示乱码),不知是什么原因?
我对存取图像不甚了了,能否帮我分析一下?万分感谢!!
ResultSet result=null;
String Sql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//取得数据库中的数据
Sql="select * from list order by date desc";
result=DbaObj.ExecuteQuery(Sql);
result.next();
//将数据库中的数据读到流中
InputStream in =result.getBinaryStream("body");
//设置输出的格式
response.reset();
response.setContentType("image/jpeg");
//循环去出流中的数据
byte[] b = new byte[1024];
int len;
while((len=in.read(b)) >0)
response.getOutputStream().write(b,0,len);
in.close();