如题,
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_test17] ([t1] [int] NULL ,[timage] [ntext] 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_test17 values(1,'" & MyString & "')"
Set rs = cn.Execute("select * from vb_test17")
rs.MoveFirst Open "C:\Documents and Settings\Administrator\桌面\vb-program\test17.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("timage")
Close #1
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_test17] ([t1] [int] NULL ,[timage] [ntext] 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_test17 values(1,'" & MyString & "')"
Set rs = cn.Execute("select * from vb_test17")
rs.MoveFirst Open "C:\Documents and Settings\Administrator\桌面\vb-program\test17.txt" For Output As #1 ' 打开输入文件。
Print #1, rs("timage")
Close #1
解决方案 »
- 关于VB界面设备配置的问题 新手 请您指教
- vb窗体求助
- 水晶报表每页显示两组的问题???
- 我要怎么写命令自动将这个MsgBox "发送成功!", 64, "OK"去掉
- 如何读取以特殊字符分隔的文件内容
- 我在做VB连SQL SERVER 2000的实验中,数据库的记录中有空值,但在单击命令按钮时,text不给为空,帮帮忙!
- 在Modules中定义的自定义数据类型为什么不能在Class Modules中使用??????
- 各位大哥!!帮帮忙!!!在VB中,如果鼠标不在FORM范围内,如何获取鼠标事件??
- 小弟对vb一无所知 做课程设计时遇到了问题 望各位好心人帮帮忙
- 能否告诉我怎样VB怎样使用资源文件(*.res)
- 在vb中如何操作两个数据库
- Combobox 问题?
' 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
'
' 请问我该怎样才能读出和原来一样的呢?
使用image类型'http://support.microsoft.com/default.aspx?scid=kb;EN-US;258038'*************************************************************************
'**
'** 使用 ADODB.Stream 保存/读取文件到数据库
'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
'**
'** ----- 数据库连接字符串模板 ---------------------------------------
'** ACCESS数据库
'** iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
'** ";Data Source=数据库名"
'**
'** SQL数据库
'** iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
'** "User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名"
'**'保存文件到数据库中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcStr As String
'数据库连接字符串
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=F:\csdn_vb\database\保存图片\img.mdb"
Dim iConc As ADODB.Connection
Set iConc = New ADODB.Connection
iConc.Open iConcStr
'读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile App.Path + "\com.doc"
End With
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "select * from img", iConc, 1, 3
.AddNew '新增一条记录
.Fields("photo") = iStm.Read
.Update
End With
'完成后关闭对象
iRe.Close
iStm.Close
End SubSub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConc As String
'数据库连接字符串
iConc = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=F:\csdn_vb\database\保存图片\img.mdb"
'打开表
Set iRe = New ADODB.Recordset
iRe.Open "img", iConc, adOpenKeyset, adLockReadOnly
iRe.Filter = "id=3" '比如单击datagrid后找到id=3的纪录
'保存到文件
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe("photo")
.SaveToFile "c:\com.doc"
End With
OLE1.SourceDoc = "c:\\com.doc"
OLE1.Action = 1 'use the old action method
OLE1.SizeMode = vbOLESizeAuttoSize '调节对象大小使其正好充满OLE容器控件 'Picture1.Picture = LoadPicture("c:\tesd.bmp")
'关闭对象
iRe.Close
iStm.Close
End SubPrivate Sub Command1_Click()
Call s_ReadFile
End SubPrivate Sub Command2_Click()
Call s_SaveFile
End Sub
我现在的问题就是想从数据库读,写ntext类型字段。请问如何处理?
do
line input #1,a
mystring=mystring & a & vbcrlf
loop
我按照您的方式用Adodb.stream方式从数据库中读取ntext字段的内容,是可以的。非常感谢!
但是,有一个问题,读出来的内容的开头多了两个字节
FF FE我试了好几个文件,都出现这种情况,不知道是什么原因。还望明示。再谢!
您试出来的结果是怎样的?
会出现多两个字节的情况吗?
我刚才在Sql的查询分析器中用
Select datalength(t2) from vb_test20
结果是200字节和g.dat 文件大小的结果一致.
但是读出来的文件的大小却是202字节
就是前面多出来的 FF FE 的结果.
我是大傻我怕谁.