=============================================================== 写入word dim rs dim stream
set rs=Server.CreateObject("ADODB.recordset") set stream=Server.CreateObject("ADODB.Stream") stream.Type=1 stream.open stream.LoadFromFile "D:\shLiuCheng1.doc" rs.open "select * from 表名,conn,3,3
rs.addNew rs("image1")=stream.read rs.update 这种方法把Word 文档存入表中================================================================ 读出word Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim mstream As ADODB.Streamcn.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 表名", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream mstream.Type = adTypeBinary mstream.Open mstream.Write rs.Fields("image1").Value mstream.SaveToFile "c:\temp.doc", adSaveCreateOverWriters.Close cn.Close
cn.Execute "CREATE TABLE [dbo].[vb_test] ([t1] [int] NULL ,[t2] [text] NULL) " Dim iStm As ADODB.Stream Dim iRe As ADODB.Recordset '读取文件到内容 Set iStm = New ADODB.Stream With iStm .Type = adTypeBinary '二进制模式 .Open .LoadFromFile "C:\Documents and Settings\Administrator\桌面\vb-program\g.dat" End With
'打开保存文件的表 Set iRe = New ADODB.Recordset With iRe .Open "vb_test", cn, adOpenKeyset, adLockOptimistic .AddNew '新增一条记录 .Fields("t1") = 1 .Fields("t2") = iStm.Read .Update End With
cn.Execute "CREATE TABLE [dbo].[vb_test10] ([t1] [int] NULL ,[t2] [ntext] NULL) " Dim iStm As ADODB.Stream Dim iRe As ADODB.Recordset '读取文件到内容 Set iStm = New ADODB.Stream With iStm .Type = adTypeBinary '二进制模式 .Open .LoadFromFile "C:\Documents and Settings\Administrator\桌面\vb-program\g2.dat" End With
'打开保存文件的表 Set iRe = New ADODB.Recordset With iRe .Open "vb_test10", cn, adOpenKeyset, adLockOptimistic .AddNew '新增一条记录 .Fields("t1") = 1 .Fields("t2") = iStm.Read .Update End With
'完成后关闭对象 iRe.Close iStm.Close
Dim rs As Recordset Set rs = cn.Execute("select * from vb_test10")
Open "C:\Documents and Settings\Administrator\桌面\vb-program\vb_test10.txt" For Output As #1 ' 打开输入文件。 Print #1, rs("t2").Value Close #1
留着这个干什么? Dim rs As Recordset Set rs = cn.Execute("select * from vb_test10")
Open "C:\Documents and Settings\Administrator\桌面\vb-program\vb_test10.txt" For Output As #1 ' 打开输入文件。 Print #1, rs("t2").Value Close #1
写入word
dim rs
dim stream
set rs=Server.CreateObject("ADODB.recordset")
set stream=Server.CreateObject("ADODB.Stream")
stream.Type=1
stream.open
stream.LoadFromFile "D:\shLiuCheng1.doc"
rs.open "select * from 表名,conn,3,3
rs.addNew
rs("image1")=stream.read
rs.update
这种方法把Word 文档存入表中================================================================
读出word
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Streamcn.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 表名", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.Write rs.Fields("image1").Value
mstream.SaveToFile "c:\temp.doc", adSaveCreateOverWriters.Close
cn.Close
cn.ConnectionString = "Provider=SQLOLEDB.1;Initial Catalog=Test;Data Source=.;user id=sa;password="
cn.Open
cn.Execute "CREATE TABLE [dbo].[vb_test] ([t1] [int] NULL ,[t2] [text] NULL) " Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset '读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile "C:\Documents and Settings\Administrator\桌面\vb-program\g.dat"
End With
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "vb_test", cn, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("t1") = 1
.Fields("t2") = iStm.Read
.Update
End With
'完成后关闭对象
iRe.Close
iStm.Close
不知道为什么?
我刚试过了你的方法,和我上面给的代码的结果是一样的.
我一开始也想到了Image型,
但是我用的数据库是MS Sql Server7.0
不允许Image类型的全文检索.
按字符串来处理,和按二进制来处理的结果一致.是否是MS sql server 7.0 的问题,还是要做什么更改?
但要注意一点,要导入的文件必须是双字节,单字节则会丢失一个字节
结果还是一样的.你有Email吗?
我把我的文件发给你测试一下吧.
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;Initial Catalog=Test;Data Source=.;user id=sa;password="
cn.Open
cn.Execute "CREATE TABLE [dbo].[vb_test10] ([t1] [int] NULL ,[t2] [ntext] NULL) " Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset '读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile "C:\Documents and Settings\Administrator\桌面\vb-program\g2.dat"
End With
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "vb_test10", cn, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("t1") = 1
.Fields("t2") = iStm.Read
.Update
End With
'完成后关闭对象
iRe.Close
iStm.Close
Dim rs As Recordset
Set rs = cn.Execute("select * from vb_test10")
Open "C:\Documents and Settings\Administrator\桌面\vb-program\vb_test10.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("t2").Value
Close #1
Set rs = cn.Execute("select * from vb_test10")
Open "C:\Documents and Settings\Administrator\桌面\vb-program\vb_test10.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("t2").Value
Close #1
用WinHEX查看对比.
是否一致.
bcp "select t2 from test.dbo.vb_test" queryout c:\b.dat注意这一点,否则输入的文件是不对的:请输入字段 t2 的前缀长度 [4]:0
WinHEX提供了几个选项.我每个都试了一下.
好像还是不行?