| 问:
VB6 Win98、NT4 我用的数据库为sqlserver7,开发工具为vb6。客户端通过ODBC与数据库相连。通过ADO技术访问数据库表的数据。现请教如何把图片放入表中Image类型列中,最好有原代码提示!谢谢
答:
部分代码如下,可将它封装在ActiveX Dll中。 ' 将Binary/Text文件内容保存到Image/Text字段 ' 输入参数:Fld Image/Text字段 ' FldDesc 文件名字段,不包含路径,可选 ' DiskFile 文件名,包含文件最初所在的目录 Const BLOCKSIZE = 4096 Public Sub SaveToDB(ByRef Fld As ADODB.Field, DiskFile As String, _ Optional ByRef FldDesc As ADODB.Field) Dim strData As String '用于处理Text字段 Dim byteData() As Byte '用于处理Image字段 Dim NumBlocks As Long Dim FileLength As Long Dim LeftOver As Long Dim SourceFile As Long Dim I As Long SourceFile = FreeFile Open DiskFile For Binary Access Read As SourceFile FileLength = LOF(SourceFile) If FileLength = 0 Then Close SourceFile MsgBox DiskFile & " 无内容或不存在!" Else NumBlocks = FileLength \ BLOCKSIZE LeftOver = FileLength Mod BLOCKSIZE Fld.Value = Null Select Case Fld.Type Case adLongVarBinary 'Image 字段 ReDim byteData(NumBlocks) For I = 1 To NumBlocks Get SourceFile, , byteData() Fld.AppendChunk byteData() Next I ReDim byteData(LeftOver) Get SourceFile, , byteData() Fld.AppendChunk byteData() Case adLongVarChar 'Text 字段 strData = String(BLOCKSIZE, 32) For I = 1 To NumBlocks Get SourceFile, , strData Fld.AppendChunk strData Next I strData = String(LeftOver, 32) Fld.AppendChunk strData End Select Close SourceFile If Not IsMissing(FldDesc) Then FldDesc.Value = Mid(DiskFile, PosA(DiskFile, "\") + 1) End If End Sub |