如何使用vb6和oracle存储然后显示图片?

时间:2013-01-24 09:42:23

标签: oracle vb6

'code to load picture into database table
Private Function GetPic()
  Dim filelen As Long
  Dim numlock As Integer
  Dim leftover As Long
  Const blocksize = 100000
  Dim pic As String
  Dim bytedata() As Byte
  Dim sfile As Integer

  sql = "select PICS from student_record_database " //empty field with no pictures
  RES.Open sql, CON, adOpenDynamic, adLockOptimistic
  sfile = App.Path & "/mypic/Book1.xls" //error : type mismatch

  Open sfile For Binary Access Read As #1
  filelen = LOF(sfile)
  If filelen = 0 Then
    Close sfile
    MsgBox ("empty or not found")
  Else

    numlock = filelen / blocksize
    leftover = filelen Mod blocksize
    ReDim bytedata(leftover)
    Get sfile, , bytedata()
    RES(1).AppendChunk bytedata()
    ReDim bytedata(blocksize)

    For i = 1 To numlock
      Get sfile, , bytedata()
      RES(1).AppendChunk bytedata()
    Next i

    RES.Update
    Close sfile
  End If
End Function

'code to display picture in picture box from table
Private Function ShowPic()
  Dim bytedata() As Byte
  Dim file As String
  Dim filelen As Long
  Dim numlock As Integer
  Dim leftover As Long
  Const blocksize = 100000

  file = App.Path & "\image1.jpeg"
  Open file For Binary As #1
  numlock = filelen / blocksize
  leftover = filelen Mod blocksize
  bytedata() = RES(1).GetChunk(leftover)
  Put file, , bytedata()

  For i = 1 To numlock
    bytedata() = RES(1).GetChunk(blocksize)
    Put file, , bytedata()
  Next i
  Close file
End Function

这是我在oracle表数据库中使用vb插入图片的完整代码。 接下来,我根据他们的记录在vb应用程序的图片框中显示这些图片,但它显示错误“#34; type mismatch"和图片没有显示在图片框中。

1 个答案:

答案 0 :(得分:0)

您将sFile声明为整数,但正在尝试在其中加载字符串

Dim sFile as string
sfile = App.Path & "/mypic/Book1.xls"