Image1.Picture = LoadPicture(rs.Fields(0))
这条语句错了。我该如何写这条语句,谢谢。
这条语句错了。我该如何写这条语句,谢谢。
解决方案 »
- 如何添加Combobox的选项
- 急!~~~~~~~~在线等回复
- 怎样来解决这个的问题,我是个初学vb的
- 很简单的查询
- 一个网页恶意脚本 请达人帮忙分析
- ★★★★★★寻XP样式的Combobox★★★★★★
- 如何在FORM中建立一个COMBO,在COMBO的下来菜单中选中一个项目,单击后能弹出一个FORM?????? 谢谢~~~我是菜鸟~急需解决!!!!!在
- vb6.0用MAPI收Microsoft outlook中的邮件会出错,快来看看!!!
- 有谁做过图书管理系统的,给我一分源码吧,急需,谢谢!!!!!!!!!!
- Picturebox 能否绑定到 ACCESS数据库的图片字段?
- 数据库读取的问题?
- 请问在使用MSFgrid控件的时候调用数据库中的数据,如何实现数据的按行填充啊?哪位大侠帮解决一下。
这样得到的数据流就是图象的数据流,至于如何才能转化成bmp....vb.net有办法直接new bitmap from stream就ok了,但是vb6似乎就困难了,需要额外的sdk,比如intel的jpeg压缩.或者你写临时文件,然后再用picturebox加载(不是好办法的办法)
LoadPicture(rs.Fields(0))读出来的是路径!不是以二进制的方式!
打开vb6,新建工程。添加两个按钮,一个image控件
注意:Access中的photo字段类型为OLE对象.
SqlServer中的photo字段类型为Image'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
‘2.5版本以下不支持Stream对象
Dim iConcstr As String
Dim iConc As ADODB.Connection
'保存文件到数据库中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcstr As String '读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile App.Path + "\test.jpg"
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 Sub
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
'打开表
Set iRe = New ADODB.Recordset
‘得到最新添加的纪录
iRe.Open "select top 1 * from img order by id desc", iConc, adOpenKeyset, adLockReadOnly
'保存到文件
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe("photo")
‘这里注意了,如果当前目录下存在test1.jpg,会报一个文件写入失败的错误.
.SaveToFile App.Path & "\test1.jpg"
End With
Image1.Picture = LoadPicture(App.Path & "\test1.jpg")
'关闭对象
iRe.Close
iStm.Close
End Sub
Private Sub Command1_Click()
Call s_ReadFile
End Sub
Private Sub Command2_Click()
Call s_SaveFile
End Sub
Private Sub Form_Load()
'数据库连接字符串
iConcstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=F:\csdn_vb\database\保存图片\access图片\img.mdb"‘下面的语句是连接sqlserver数据库的.
‘iConcstr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
‘ "User ID=sa;Password=;Initial Catalog=test;Data Source=yang"
Set iConc = New ADODB.Connection
iConc.Open iConcstr
End Sub
Private Sub Form_Unload(Cancel As Integer)
iConc.Close
Set iConc = Nothing
End Sub
Private Sub ReadFromDB()
Dim MediaTemp As String
Dim lngOffset As Long
Dim lngTotalSize As Long
Dim strChunk As String
Dim Title As String
On Error Resume NextIf Fa.MouseRow = 0 Then Exit Sub 'only use good rows
Title = Fa.TextMatrix(Fa.MouseRow, 1)
Set rs = db.OpenRecordset("SELECT tblMedia.Picture FROM tblMedia WHERE tblMedia.Title = '" & Title & "'", dbOpenSnapshot)
If rs.RecordCount = 0 Then
MsgBox "error retrieving object"
rs.Close
Set rs = Nothing
Exit Sub
End If
MediaTemp = App.Path & "\mdiatemp.tmp"DataFile = 1
Open MediaTemp For Binary Access Write As DataFileIf Err.Number = 70 Then
MsgBox Err.Number & Err.Description
Err.Clear
rs.Close
Set rs = Nothing
Exit Sub
End IflngTotalSize = rs!Picture.FieldSize
Chunks = lngTotalSize \ ChunkSize
Fragment = lngTotalSize Mod ChunkSize
'ReDim Chunk(Fragment)
ReDim Chunk(ChunkSize)
Chunk() = rs!Picture.GetChunk(lngOffset, ChunkSize)
Put DataFile, , Chunk()
lngOffset = lngOffset + ChunkSize
Do While lngOffset < lngTotalSize
Chunk() = rs!Picture.GetChunk(lngOffset, ChunkSize)
Put DataFile, , Chunk()
lngOffset = lngOffset + ChunkSize
Loop
Close DataFileFileName = MediaTempEnd Sub
Private Sub FileName_Change()
SaveToDB.Enabled = FileName <> ""
If FileName = "" Then Exit Sub Image1.Picture = LoadPicture(FileName)
Image1.Visible = True
End Sub