' 其中文件g.dat用WinHEX打开显示如下
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15
'
' 结果我用VB写到Sql Server中, 再次读出来时, 却显示如下
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F OD 0A
'
' 请问我该怎样才能读出和原来一样的呢?VB代码如下
Dim cn As New ADODB.Connection
Dim MyString As String
Dim rs As Recordset
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) "
Open "C:\Documents and Settings\Administrator\桌面\vb-program\g.dat" For Input As #1 ' 打开输入文件。
Do While Not EOF(1)
Input #1, MyString
Loop
Close #1
cn.Execute "INSERT INTO vb_test values(1,'" & MyString & "')"
Set rs = cn.Execute("select * from vb_test") Open "C:\Documents and Settings\Administrator\桌面\vb-program\test.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("t2").Value
Close #1
http://community.csdn.net/Expert/topic/3168/3168544.xml?temp=.7402002
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15 FB 15
' FB 15 FB 15 FB 15 FB 15
'
' 结果我用VB写到Sql Server中, 再次读出来时, 却显示如下
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
' 3F 3F 3F 3F OD 0A
'
' 请问我该怎样才能读出和原来一样的呢?VB代码如下
Dim cn As New ADODB.Connection
Dim MyString As String
Dim rs As Recordset
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) "
Open "C:\Documents and Settings\Administrator\桌面\vb-program\g.dat" For Input As #1 ' 打开输入文件。
Do While Not EOF(1)
Input #1, MyString
Loop
Close #1
cn.Execute "INSERT INTO vb_test values(1,'" & MyString & "')"
Set rs = cn.Execute("select * from vb_test") Open "C:\Documents and Settings\Administrator\桌面\vb-program\test.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("t2").Value
Close #1
http://community.csdn.net/Expert/topic/3168/3168544.xml?temp=.7402002
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类型的字段不能进行全文检索.
所以要转换还要转化为别的,
不知道是否有别的支持这么长的字段?
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] [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\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
但要注意一点,要导入的文件必须是双字节,单字节则会丢失一个字节
我测试了.gif文件及.xls文件,又字节的保存及还原均没有问题.单字节的出错,出现丢失一个字节的情况.