我主要用了这个方法来把图片存入数据库
Public Sub SavePicToDb(ByRef fld As ADODB.Field, DiskFile As String)
'存取照片的 函数
Dim mStream As ADODB.Stream
Set mStream = New ADODB.Stream
mStream.Type = adTypeBinary
mStream.Open
If DiskFile <> vbNullString Then
mStream.LoadFromFile DiskFile
fld = mStream.Read
End If
mStream.Close
Set mStream = Nothing
End Sub读取用的是 Set ImgPic.DataSource = mrc
ImgPic.DataField = "图片"删除我还不会
更新我也不会还有,比如我想批量录入一批学生的图片,图片的名字是以
学号命名的,如何实现批量录入啊???谢谢了,急用!!!
Public Sub SavePicToDb(ByRef fld As ADODB.Field, DiskFile As String)
'存取照片的 函数
Dim mStream As ADODB.Stream
Set mStream = New ADODB.Stream
mStream.Type = adTypeBinary
mStream.Open
If DiskFile <> vbNullString Then
mStream.LoadFromFile DiskFile
fld = mStream.Read
End If
mStream.Close
Set mStream = Nothing
End Sub读取用的是 Set ImgPic.DataSource = mrc
ImgPic.DataField = "图片"删除我还不会
更新我也不会还有,比如我想批量录入一批学生的图片,图片的名字是以
学号命名的,如何实现批量录入啊???谢谢了,急用!!!
解决方案 »
- VB中EXCEL引用版本的问题
- 请问在VB中打印TextBox里边的内容
- GB2312编码如何转换到中文字符串?
- 密码登陆(快急死我了,5555)
- win2000下能屏蔽alt+ctrl+del吗?
- 请求大家帮忙关于WebBrowser1控件问题
- 如何模拟adobe acrobat打开PDF文件另存为tif格式文件的操作(adobe acrobat隐藏)
- vb到底是基於對象的還是面嚮對象的還是都不是????
- 为什么我写的.ocx文件在程序中无法使用???我想声明set control =new usercontrol 可是不行!!!这是为什么???
- 如何在VB中实现查找?如何给你我全部的分?
- 如何自定义连接失败信息?
- adodc控件批修改记录,出现键列不足的错误,这是为何,删除也删除不了
Dim byteData() As Byte, FileLength As Long, NumBlocks As Integer
Dim LeftOver As Long, SourceFileNum As Integer, i As Integer
SourceFileNum = FreeFile '打开的文件号 你可以直接写 例如: 1
Open ImgFile For Binary As #SourceFileNum 'ImgFile是图片所在目录
FileLength = LOF(SourceFileNum)
If FileLength > 50 Then
NumBlocks = FileLength / BLOCKSIZE
LeftOver = FileLength Mod BLOCKSIZE
ReDim byteData(LeftOver)
Get #SourceFileNum, , byteData()
Col.AppendChunk byteData()
ReDim byteData(BLOCKSIZE)
For i = 1 To NumBlocks
Get #SourceFileNum, , byteData()
Col.AppendChunk byteData()
Next
End If
Close #SourceFileNum
End Sub
cn.execute "delete from employees where employeeid=1"
删除图片:
cn.execute "update employees set photos=null where employeeid=2"
更新:
cn.execute "update employees set name='yoki' where employeeid=3"
批量录入:
会录入一条了,批量还能不会么?价格循环就可以了
另外,往数据库写的函数本身可以是属于Transcation之内的。Public Function GetFileFromDB(dbField As ADODB.Field, vData As Variant, Optional ByVal SaveAs As String = "", Optional PackageSize As Long = 8192&)
On Error GoTo errHandle
Dim lngActualSize As Long, lngCurrentSize As Long
Dim vTemp As Variant, bTemp() As Byte
Dim hFile As Long
lngActualSize = dbField.ActualSize
lngCurrentSize = 0
If lngActualSize <= 0 Then
Err.Raise ERR_SIZE_EQU_OR_LESS_ZERO, "getFileFromDB"
End If
If Trim(SaveAs) = "" Then
Do While lngCurrentSize < lngActualSize
vTemp = dbField.GetChunk(PackageSize)
vData = vData & vTemp
lngCurrentSize = lngCurrentSize + PackageSize
Loop
Else
hFile = FreeFile()
Open SaveAs For Binary As hFile
Do While lngCurrentSize < lngActualSize
vTemp = dbField.GetChunk(PackageSize)
bTemp = vTemp
Put #hFile, , bTemp
vData = vData & vTemp
lngCurrentSize = lngCurrentSize + PackageSize
Loop
Close
End If
GetFileFromDB = 0
Exit Function
errHandle:
GetFileFromDB = Err.Number
End Function
Public Function SaveFileToDB(ByVal Filename As String, dbField As ADODB.Field, Optional PackageSize As Long = 8192&) As Long
On Error GoTo errHandle
Dim lngActualSize As Long, lngCurrentSize As Long
Dim vTemp As Variant, bTemp() As Byte
Dim hFile As Long
Dim i As Integer
Dim lChunkCount As Long
Dim lChunkRemainder As Long
lngActualSize = FileLen(Filename)
lngCurrentSize = 0
If lngActualSize <= 0 Then
Err.Raise ERR_SIZE_EQU_OR_LESS_ZERO, "writeFileToDB"
End If
'读取文件内容
hFile = FreeFile()
Open Filename For Binary As hFile
ReDim bTemp(PackageSize) '临时存贮块
lChunkCount = (LOF(hFile) - Seek(hFile) + 1) \ PackageSize '取块数
lChunkRemainder = (LOF(hFile) - Seek(hFile) + 1) Mod PackageSize '取整块后余下的数据
For i = 1 To lChunkCount
Get hFile, , bTemp '从文件中取出一块
dbField.AppendChunk (bTemp) '将块写入字段中
Next
If lChunkRemainder > 0 Then
ReDim bTemp(PackageSize) '临时存贮块
Get hFile, , bTemp '取出该块
dbField.AppendChunk (bTemp) '写入字段中
End If
Close
'MsgBox dbField.ActualSize
SaveFileToDB = 0
Exit Function
errHandle:
SaveFileToDB = Err.Number
End Function
我有ado 存取该图片的示例