SQL Server:存储图像和BLOB文件(二)
2008-04-14 09:54:28 来源:WEB开发网INSERT INTO BLOBTest
(BLOBName, BLOBData)
SELECT 'First test file',
BulkColumn FROM OPENROWSET(
Bulk 'D: est.jpg', SINGLE_BLOB) AS BLOB
这里用“D: est.jpg”代入作为文件的文件系统路径。OPENROWSET语句允许SQL从外部数据源提供程序来存取数据。Bulk是特别为OPENROWSET插入文件和图像而设计的数据源提供程序。想了解详细的信息,可以查阅SQL Server的联机丛书。执行选择表的操作将产生如下显示的一条记录:
SELECT*
FROMBLOBTest
SELECT语句会核实数据是否已经插入,不过这还不是在SQL中查看该图片的方法。为了查看图片,我们需要创建一个小的Visual Studio应用程序。
二进制数据读取
本例将从SQL读取已存储的图像,并利用Visual Studio在网页上展示图像。创建一个没有代码分离的新页面。代码分离的例子稍后再做介绍。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%
string sConn = @"server=.; database=Test; Integrated Security=True";
SqlConnection objConn = new SqlConnection(sConn);
objConn.Open();
string sTSQL = "SELECT BLOBData FROM BLOBTest";
SqlCommand objCmd = new SqlCommand(sTSQL, objConn);
objCmd.CommandType = CommandType.Text;
SqlDataReader dr = objCmd.ExecuteReader();
dr.Read();
Response.BinaryWrite((byte[])dr["BLOBData"]);
objConn.Close();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
该网页将使用sConn变量来查找数据库。“Integatred Security = True”将指定使用的Windows安全机制。Server名称应当是您的服务器名,如果SQL server和网页服务器再同一台本地机上,就可以使用点来代替。SQL语句只是获取图像,不过在后面的例子中,我们还要查询文件名,并构建一个更真实化的应用程序。指令类型设置为“test”的意思是传递一条SQL语句(相对于存储过程的名称)。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接