和存取image一样!下面的代码示例所针对的数据存储在 SQL Server 7.0 pubs 示例数据库的 pub_info 表中。 您需要修改 ADO 连接字符串,使之指向您安装的 SQL Server。 示例 1: 将 SQL Server Image 列中的数据保存到硬盘文件中
该示例代码将打开在 pubs 数据库的 pub_info 表中的记录集,并将存储在第一条记录 logo 列中的二进制图像数据保存到硬盘文件中,如下所示:
新建一个标准 EXE Visual Basic 工程。
在工程菜单上,单击选择引用,然后设置一个到 Microsoft ActiveX Data Objects 2.5 Object Library 的引用。
将 CommandButton 控件放在 Form1 上。
在该窗体的常规声明段中作如下声明:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
将下面的代码剪切并粘贴到添加到该窗体的 CommandButton 所对应的 Click 事件中:
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"Set rs = New ADODB.Recordset
rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.Write rs.Fields("logo").Value
mstream.SaveToFile "c:\publogo.gif", adSaveCreateOverWriters.Close
cn.Close
保存并运行该 Visual Basic 工程。
单击 CommandButton,即可将第一条记录的 logo 列所包含的二进制数据保存到文件 c:\publogo.gid 中。请用资源管理器找到并打开该文件,以查看所保存的图像。 该示例中的代码声明了一个 ADODB Stream 对象,并将它的 Type 属性设置为 adTypeBinary,以表示将使用该对象处理二进制数据。 然后,通过调用 Stream 对象的 Write 方法,存储在 pub_info 表第一条记录的 logo 列中的数据被写出到 Stream 对象中。 现在,Stream 对象包含了二进制数据,该二进制数据是通过调用该对象的 SaveToFile 方法并传入文件的路径保存到文件中的。 作为第二个参数被传入的常量 adSaveCreateOverWrite 则导致 SaveToFile 方法覆盖指定的文件(如果它已经存在)。
示例 2: 将以 .gif 文件格式存储的图像传输到 SQL Server 表的 Image 列
该示例代码将通过覆盖 pub_info 表的当前内容,将一个以 .gif 文件格式存储的图像保存到该表的第一条记录中,如下所示:
新建一个标准 EXE Visual Basic 工程。
在工程菜单上,单击选择引用,然后设置一个到 Microsoft ActiveX Data Objects 2.5 Object Library 的引用。
将 CommandButton 按钮放在 Form1 上。
在该窗体的常规声明段中作如下声明:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
将下面的代码剪切并粘贴到添加到该窗体的 CommandButton 所对应的 Click 事件中:
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"Set rs = New ADODB.Recordset
rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile "<path to .gif file>"
rs.Fields("logo").Value = mstream.Read
rs.Updaters.Close
cn.Close
保存并运行该 Visual Basic 工程。
单击 CommandButton 运行该代码,即可将 .gif 文件的内容以数据流的方式传输到 ADO Stream 对象中,并将 Stream 中的数据保存到记录集内第一条记录的 logo 列。
请使用示例 1 中的代码,确认 logo 列中的图像已被修改。
该示例代码将打开在 pubs 数据库的 pub_info 表中的记录集,并将存储在第一条记录 logo 列中的二进制图像数据保存到硬盘文件中,如下所示:
新建一个标准 EXE Visual Basic 工程。
在工程菜单上,单击选择引用,然后设置一个到 Microsoft ActiveX Data Objects 2.5 Object Library 的引用。
将 CommandButton 控件放在 Form1 上。
在该窗体的常规声明段中作如下声明:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
将下面的代码剪切并粘贴到添加到该窗体的 CommandButton 所对应的 Click 事件中:
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"Set rs = New ADODB.Recordset
rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.Write rs.Fields("logo").Value
mstream.SaveToFile "c:\publogo.gif", adSaveCreateOverWriters.Close
cn.Close
保存并运行该 Visual Basic 工程。
单击 CommandButton,即可将第一条记录的 logo 列所包含的二进制数据保存到文件 c:\publogo.gid 中。请用资源管理器找到并打开该文件,以查看所保存的图像。 该示例中的代码声明了一个 ADODB Stream 对象,并将它的 Type 属性设置为 adTypeBinary,以表示将使用该对象处理二进制数据。 然后,通过调用 Stream 对象的 Write 方法,存储在 pub_info 表第一条记录的 logo 列中的数据被写出到 Stream 对象中。 现在,Stream 对象包含了二进制数据,该二进制数据是通过调用该对象的 SaveToFile 方法并传入文件的路径保存到文件中的。 作为第二个参数被传入的常量 adSaveCreateOverWrite 则导致 SaveToFile 方法覆盖指定的文件(如果它已经存在)。
示例 2: 将以 .gif 文件格式存储的图像传输到 SQL Server 表的 Image 列
该示例代码将通过覆盖 pub_info 表的当前内容,将一个以 .gif 文件格式存储的图像保存到该表的第一条记录中,如下所示:
新建一个标准 EXE Visual Basic 工程。
在工程菜单上,单击选择引用,然后设置一个到 Microsoft ActiveX Data Objects 2.5 Object Library 的引用。
将 CommandButton 按钮放在 Form1 上。
在该窗体的常规声明段中作如下声明:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
将下面的代码剪切并粘贴到添加到该窗体的 CommandButton 所对应的 Click 事件中:
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"Set rs = New ADODB.Recordset
rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile "<path to .gif file>"
rs.Fields("logo").Value = mstream.Read
rs.Updaters.Close
cn.Close
保存并运行该 Visual Basic 工程。
单击 CommandButton 运行该代码,即可将 .gif 文件的内容以数据流的方式传输到 ADO Stream 对象中,并将 Stream 中的数据保存到记录集内第一条记录的 logo 列。
请使用示例 1 中的代码,确认 logo 列中的图像已被修改。
解决方案 »
- 求助 关于安装 reporting service
- SQL Server 2005中一条记录总长度不能大于8086吗?
- sql里面如何调用自定义方程
- 求一个insert into 语句,跪求!!
- 这样的 sql 查询有谁会写?100分
- 默认值约束与默认值,作用为何,区别为何?
- 时间日期但不要时间,感觉大家以前的问题都没有回答全
- 在SQL Server上怎么查一个文件组里有哪些表?
- 急啊,关于数据库插入的问题,万分感谢
- 各位大哥,请请帮助:)
- ●一个很菜的问题:如何格式化输出一个字段值,即如何将float类型的字段以0.00样式输出???select 0.00 xxx from table,结果全是.00???
- 我想判断某一条记录的sg_id字段值是否为null,
我的E_mail:[email protected]
如果你愿意的话,给我发封E_mail 或者 给我个qq