如何在VB中编写存储照片到数据库的代码?

gx_sunny 2000-04-06 07:12:00
...全文
114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaput 2000-04-07
  • 打赏
  • 举报
回复
在VB中用Access方便一些,只要把某个字段定义为备注型或LonBinary型用Appendchunk写入。我从VB帮助中拷贝了一个例子:
Sub AppendChunkX()

Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim rstEmployees2 As Recordset

Set dbsNorthwind = OpenDatabase("Northwind.mdb")

' Open two recordsets from the Employees table.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
Set rstEmployees2 = rstEmployees.Clone

' Add a new record to the first Recordset and copy the
' data from a record in the second Recordset.
With rstEmployees
.AddNew
!FirstName = rstEmployees2!FirstName
!LastName = rstEmployees2!LastName
CopyLargeField rstEmployees2!Photo, !Photo
.Update

' Delete new record because this is a demonstration.
.Bookmark = .LastModified
.Delete
.Close
End With

rstEmployees2.Close
dbsNorthwind.Close

End Sub

Function CopyLargeField(fldSource As Field, _
fldDestination As Field)

' Set size of chunk in bytes.
Const conChunkSize = 32768

Dim lngOffset As Long
Dim lngTotalSize As Long
Dim strChunk As String

' Copy the photo from one Recordset to the other in 32K
' chunks until the entire field is copied.
lngTotalSize = fldSource.FieldSize
Do While lngOffset < lngTotalSize
strChunk = fldSource.GetChunk(lngOffset, conChunkSize)
fldDestination.AppendChunk strChunk
lngOffset = lngOffset + conChunkSize
Loop

End Function

我平时喜欢把图片文件放到某个目录下,在数据库中只记录文件名,用LoadPicture()调用对应的图片。
town 2000-04-06
  • 打赏
  • 举报
回复
写图片:记录集.Fields("字段名").AppendChunk Byte数组()
读图片:Byte数组()=记录集.Fields("字段名").GetChunk(记录集.Fields("字段名").ActualSize)

其中写入前Byte数组中的数据需要自已处理,可用VB的文件处理手段。
以上方法在Oracle(LONG RAW),Access(Binary)中实现过。
lancer 2000-04-06
  • 打赏
  • 举报
回复
用Field.appendchunk()方法。
major2 2000-04-06
  • 打赏
  • 举报
回复
请问您用的是什么数据库?普遍一点的做法,适用于几乎所有数据库的,是把照片文件当成一个二进制文件写到数据库的字段里去,一般数据库都有能放二进制数据的数据类型,象SQL SERVER里的IMAGE类型。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧