WEB开发网
开发学院数据库MSSQL Server SQL Server:存储图像和BLOB文件(三) 阅读

SQL Server:存储图像和BLOB文件(三)

 2008-04-14 09:54:30 来源:WEB开发网   
核心提示: 现在,图像数据就可以传递进入SQL参数,SQL Server:存储图像和BLOB文件(三)(4),并运行了:paramFileData.Value=bImage;objCmd.ExecuteNonQuery();运行该应用程序在浏览器中查看该网页,点击浏览按钮,例如使用字节数组,不过总体而

现在,图像数据就可以传递进入SQL参数,并运行了:

  paramFileData.Value=bImage;
  objCmd.ExecuteNonQuery();

运行该应用程序

在浏览器中查看该网页,点击浏览按钮。这时会出现一个如下所示的文件选择窗口:  

SQL Server:存储图像和BLOB文件(三)

浏览文件夹选择好文件后点击完成按钮,就会执行上面创建的SQL存储过程。在SQL Server内部查看运行结果,会显示有二进制数据,但不会显示数据的真实内容:  

SQL Server:存储图像和BLOB文件(三)

因为SQL Server本身不带有BLOB浏览器,所以我们要自动动手制作一个类似于前一篇文章所示的浏览器,不同的是这个浏览器通过存储过程驱动的。

浏览器

创建一个简单的可以选择图像数据的存储过程,T-SQL代码如下:

  CREATEPROCEDUREBLOBViewer
  AS
  SELECTBLOBData
  FROMBLOBFromWeb

接下来,制作一个代码分离的aspx网页。在代码分离页面添加SQL Server的使用语句:

  usingSystem.Data.Sql;
  usingSystem.Data.SqlClient;

在Page_load的部分,使用下面的代码执行刚刚创建的存储过程:

  stringsConn=@"server=.;database=BLOBTest3;IntegratedSecurity=True";
  SqlConnectionobjConn=newSqlConnection(sConn);
  objConn.Open();
  SqlCommandobjCmd=newSqlCommand("BLOBViewer",objConn);
  objCmd.CommandType=CommandType.StoredProcedure;
  SqlDataReaderdr=objCmd.ExecuteReader();
  dr.Read();
  Response.BinaryWrite((byte[])dr["BLOBData"]);
  objConn.Close();

这里的网页浏览器代码和前一篇文章中的代码很相似,不过把CommandType变成了Stored Procedure,而且SQLCommand的执行使用了该存储过程名而不是一串SQL字符串。

总结

SQL Server可以作为存储图像和BLOB数据的便携容器使用,不过处理二进制数据和处理ASCII有所不同:存储在SQL Server内部的数据并不像字符数据那样能看到它们是什么样子的;此外,在将数据发送到SQL Server之前,还需要对数据进行一些特殊处理,例如使用字节数组。不过总体而言,在SQL Server中使用和存储BLOB文件还是很有价值的。

上一页  1 2 3 4 

Tags:SQL Server 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接