VB数据流存储与读取图片到SQL数据库

4星 · 超过85%的资源 需积分: 46 175 下载量 201 浏览量 更新于2024-09-13 2 收藏 3KB TXT 举报
"这篇文章主要介绍了如何使用VB代码将各种类型的文件转换为数据流,并将其以二进制形式存储到SQL数据库中的技术。通过创建ADODB.Stream对象,可以处理文件的读取和写入操作,从而实现文件在数据库中的存储和检索。在Access中,图片通常以OLE对象存储;而在SQL Server中,图片则以Image类型存储。示例代码展示了如何保存文件到数据库以及从数据库读取文件并保存到本地。" 在VB(Visual Basic)编程环境中,处理文件和数据流的操作对于存储和检索非文本数据,如图片或文档,是十分常见的。数据流(Stream)允许我们将文件内容视为一串连续的字节流,这样可以方便地在内存与数据库之间传输。 首先,我们需要引入`Microsoft ActiveX Data Objects 2.5 Library`,这是VB中用于数据库操作的重要库。在这个例子中,我们创建了两个ADODB对象:一个`Connection`对象(iConc)用于连接数据库,一个`Stream`对象(iStm)用于处理文件数据流。 `Subs_SaveFile`子程序展示了如何将文件保存到数据库。首先,创建`Stream`对象并设置其类型为`adTypeBinary`,表示我们将处理二进制数据。然后,使用`LoadFromFile`方法加载本地文件到Stream对象。接着,打开一个`Recordset`对象(iRe),向其中添加新记录,并将Stream对象中的数据写入数据库中指定的"photo"字段。 `Subs_ReadFile`子程序则演示了如何从数据库读取文件并保存到本地。同样,创建`Recordset`对象查询数据库,获取最新记录的"photo"字段内容。然后创建一个新的`Stream`对象,写入从数据库读取的数据,并将其保存到本地文件。最后,可以将这个文件加载到VB的Image控件中显示。 在Access和SQL Server数据库中,图片数据的存储方式不同。在Access中,图片通常作为OLE对象存储,而SQL Server中则使用Image数据类型。使用VB和ADODB库,我们可以跨数据库系统进行一致的文件操作。 通过这段代码,开发者可以学习到如何在VB中处理二进制数据流,以及如何将这些数据流与数据库操作结合,这对于处理任何非文本数据,如图片、音频或视频文件,都是至关重要的技能。
2007-02-16 上传
摘要:NTFS是Microsoft公司开发的一种有着良好安全性和稳定性的高性能文件系统,NTFS的文件或文件夹中附加多个额外的数据流,但是其访问一直没有很好的解决办法,本文使用VB2003实现NTFS文件附加数据流的读写类,提供.Net框架下NTFS文件附加数据流的完整解决方案。 关键词:VB.Net NTFS 数据流 类 在项目中选择添加引用->浏览->选择“JWBStreamOP.dll”文件->确定,即可成功引用。 4.1 类的声明: Dim myStreamOP As New ClassJWBStreamOP(“NTFS文件完整路径”) 4.2 属性: 该类共有3个只读属性 属性名 返回值类型 备注 FileName String 只读,在成功声明后使用 Ready Boolean 只读,该类可操作时为True Ver String 只读,类版本、版权信息 4.3 方法 该类共有6个方法: 4.3.1 OpenNTFSStream(ByVal sStreamName As String) As System.IO.FileStream 打开指定文件(声明时指定)的指定数据流,返回值为指定数据流的FileStream接口。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.2 GetNTFSStreamSize(ByVal sStreamName As String) As Long 获取指定数据流的大小,返回实际大小,执行失败返回-1 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.3 AddNTFSStream(ByVal toHidName As String, ByRef percentDone As Double) As Boolean 添加附加数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 toHidName String ByVal 待添加的文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.4 SaveNTFSStream(ByVal sStreamName As String, ByVal outFileName As String, ByRef percentDone As Double) As Boolean将指定的数据流保存为文件,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String ByVal 流文件名 outFileName String ByVal 保存文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.5 ReadNTFSStreamsName() As String() 获取文件的所有附加数据流名称,返回名称数组。 4.3.6 DeleteNTFSStream(ByVal sStreamName As String) As Boolean 删除指定数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名