亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用VB6讀寫數據庫中的圖片

2019-11-18 22:12:47
字體:
來源:轉載
供稿:網友
很多兄弟在這里問關于VB6讀寫數據庫中的圖片的問題,在此有一例,希有所啟發。
   1,以人名和相關圖片為例說明,數據庫為access,有如下字段:Name char,picture OLE object,FileLength
Number。當為ms sql時,將picture改為lob即可。
   2,示例包含control:commom dialog,picture,listbox。
源碼如下:
Option Explicit

PRivate Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As
String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long,
ByVal lpBuffer As String) As Long
Private Const MAX_PATH = 260

Private m_DBConn As ADODB.Connection

Private Const BLOCK_SIZE = 10000
' Return a temporary file name.
Private Function TemporaryFileName() As String
Dim temp_path As String
Dim temp_file As String
Dim length As Long

    ' Get the temporary file path.
    temp_path = Space$(MAX_PATH)
    length = GetTempPath(MAX_PATH, temp_path)
    temp_path = Left$(temp_path, length)

    ' Get the file name.
    temp_file = Space$(MAX_PATH)
    GetTempFileName temp_path, "per", 0, temp_file
    TemporaryFileName = Left$(temp_file, InStr(temp_file, Chr$(0)) - 1)
End Function
Private Sub Form_Load()
Dim db_file As String
Dim rs As ADODB.Recordset

    ' Get the database file name.
    db_file = App.Path
    If Right$(db_file, 1) <> "/" Then db_file = db_file & "/"
    db_file = db_file & "dbpict.mdb"

    ' Open the database connection.
    Set m_DBConn = New ADODB.Connection
    m_DBConn.Open _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & db_file & ";" & _
        "Persist Security Info=False"

    ' Get the list of people.
    Set rs = m_DBConn.Execute("SELECT Name FROM People ORDER BY Name", , adCmdText)
    Do While Not rs.EOF
        lstPeople.AddItem rs!Name
        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
End Sub
Private Sub Form_Resize()
    lstPeople.Height = ScaleHeight
End Sub


' Display the clicked person.
Private Sub lstPeople_Click()
Dim rs As ADODB.Recordset
Dim bytes() As Byte
Dim file_name As String
Dim file_num As Integer
Dim file_length As Long
Dim num_blocks As Long
Dim left_over As Long
Dim block_num As Long
Dim hgt As Single

    picPerson.Visible = False
    Screen.MousePointer = vbHourglass
    DoEvents

    ' Get the record.
    Set rs = m_DBConn.Execute("SELECT * FROM People WHERE Name='" & _
        lstPeople.Text & "'", , adCmdText)
    If rs.EOF Then Exit Sub

    ' Get a temporary file name.
    file_name = TemporaryFileName()

    ' Open the file.
    file_num = FreeFile
    Open file_name For Binary As #file_num

    ' Copy the data into the file.
    file_length = rs!FileLength
    num_blocks = file_length / BLOCK_SIZE
    left_over = file_length Mod BLOCK_SIZE

    For block_num = 1 To num_blocks
        bytes() = rs!Picture.GetChunk(BLOCK_SIZE)
        Put #file_num, , bytes()
    Next block_num

    If left_over > 0 Then
        bytes() = rs!Picture.GetChunk(left_over)
        Put #file_num, , bytes()
    End If

    Close #file_num

    ' Display the picture file.
    picPerson.Picture = LoadPicture(file_name)
    picPerson.Visible = True

    Width = picPerson.Left + picPerson.Width + Width - ScaleWidth
    hgt = picPerson.Top + picPerson.Height + Height - ScaleHeight
    If hgt < 1440 Then hgt = 1440
    Height = hgt

    Kill file_name
    Screen.MousePointer = vbDefault
End Sub

Private Sub mnuRecordAdd_Click()
Dim rs As ADODB.Recordset
Dim person_name As String
Dim file_num As String
Dim file_length As String
Dim bytes() As Byte
Dim num_blocks As Long
Dim left_over As Long
Dim block_num As Long

    person_name = InputBox("Name")
    If Len(person_name) = 0 Then Exit Sub

    dlgPicture.Flags = _
        cdlOFNFileMustExist Or _
        cdlOFNHideReadOnly Or _
        cdlOFNExplorer
    dlgPicture.CancelError = True
    dlgPicture.Filter = "Graphics Files|*.bmp;*.ico;*.jpg;*.gif"

    On Error Resume Next
    dlgPicture.ShowOpen
    If Err.Number = cdlCancel Then
        Exit Sub
    ElseIf Err.Number <> 0 Then
        MsgBox "Error " & Format$(Err.Number) & _
            " selecting file." & vbCrLf & Err.Description
        Exit Sub
    End If

    ' Open the picture file.
    file_num = FreeFile
    Open dlgPicture.FileName For Binary Access Read As #file_num

    file_length = LOF(file_num)
    If file_length > 0 Then
        num_blocks = file_length / BLOCK_SIZE
        left_over = file_length Mod BLOCK_SIZE

        Set rs = New ADODB.Recordset
        rs.CursorType = adOpenKeyset
        rs.LockType = adLockOptimistic
        rs.Open "Select Name, Picture, FileLength FROM People", m_DBConn

        rs.AddNew
        rs!Name = person_name
        rs!FileLength = file_length

        ReDim bytes(BLOCK_SIZE)
        For block_num = 1 To num_blocks
            Get #file_num, , bytes()
            rs!Picture.AppendChunk bytes()
        Next block_num

        If left_over > 0 Then
            ReDim bytes(left_over)
            Get #file_num, , bytes()
            rs!Picture.AppendChunk bytes()
        End If

        rs.Update
        Close #file_num

        lstPeople.AddItem person_name
        lstPeople.Text = person_name
    End If
End Sub

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线第一页| 久久久人成影片一区二区三区观看| 欧美性色视频在线| 亚洲精品日韩欧美| 成人在线小视频| 久久久亚洲国产天美传媒修理工| 欧美日韩在线免费| 欧美丰满片xxx777| 久久欧美在线电影| 日韩视频在线观看免费| 色先锋久久影院av| 国产69精品久久久久久| 欧美理论片在线观看| 午夜美女久久久久爽久久| 国产又爽又黄的激情精品视频| 欧美在线观看网址综合| 国产成人精品免高潮费视频| 精品久久久久久久久久久久久久| 4k岛国日韩精品**专区| 欧美亚洲另类在线| 成人精品视频久久久久| 国产精品久久久久久久久男| 国产精品久久婷婷六月丁香| 欧美一区二区视频97| 一区二区三区高清国产| 日韩在线观看电影| 亚洲国产精品人人爽夜夜爽| 疯狂做受xxxx高潮欧美日本| 免费97视频在线精品国自产拍| 美女av一区二区| 欧美三级欧美成人高清www| 日韩亚洲国产中文字幕| 97不卡在线视频| 亚洲黄色免费三级| 亚洲精品一区二区在线| 国产精品自产拍在线观| 97在线日本国产| 九九热视频这里只有精品| 色噜噜狠狠色综合网图区| 亚洲性日韩精品一区二区| 亚洲欧美日韩综合| 日韩精品欧美国产精品忘忧草| 色播久久人人爽人人爽人人片视av| 91国产高清在线| 久久免费视频这里只有精品| 91久久久久久久一区二区| 久久久亚洲影院| 88国产精品欧美一区二区三区| 亚洲午夜未满十八勿入免费观看全集| 欧美性理论片在线观看片免费| 亚洲天堂av在线播放| 91高清免费视频| 国产精品久久久久久久久久久新郎| 91精品国产综合久久香蕉的用户体验| 国产欧美日韩中文字幕在线| 丝袜美腿亚洲一区二区| 97视频com| 一区二区三区视频免费在线观看| 欧美性做爰毛片| 在线日韩中文字幕| 超碰91人人草人人干| 久久亚洲国产成人| 欧美一级bbbbb性bbbb喷潮片| 日韩中文娱乐网| 日韩av在线免费| 欧美中文字幕视频在线观看| 中文字幕欧美日韩在线| 国产精品久久久久影院日本| 亚洲小视频在线| 性色av一区二区三区红粉影视| 日韩av在线免费观看| 91精品国产91久久久久久久久| 欧美亚洲成人免费| 欧美又大又粗又长| 国产一区二区日韩精品欧美精品| 欧美日韩爱爱视频| 91国产精品视频在线| 久久亚洲精品网站| 国产不卡视频在线| 狠狠躁夜夜躁人人爽天天天天97| 久久精品电影网站| 日韩欧美国产骚| 亚洲欧美国产精品久久久久久久| 国产狼人综合免费视频| 亚洲精品少妇网址| 国产成人av在线| 国内精品美女av在线播放| 亚洲精品欧美一区二区三区| 国产精品午夜视频| 国产精品日本精品| 日韩精品在线观看视频| 精品日本高清在线播放| 国模吧一区二区| 亚洲精品福利在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 欧美国产日韩二区| 国产久一一精品| 国产午夜精品一区二区三区| 精品视频www| 欧美又大又硬又粗bbbbb| 深夜福利日韩在线看| 久久影视三级福利片| 亚洲黄一区二区| 成人免费网视频| 中文字幕日韩精品在线| 精品亚洲一区二区三区四区五区| 国产精品999999| 亚洲精品日韩久久久| 国产97人人超碰caoprom| 夜夜嗨av一区二区三区四区| 91在线国产电影| 亚洲最大的成人网| 欧美一区二区.| 亚洲a∨日韩av高清在线观看| 最近2019免费中文字幕视频三| 亚洲一区二区三区sesese| 亚洲天堂免费在线| 中文字幕日韩视频| 国产精品九九久久久久久久| 亚洲男人的天堂在线| 91精品视频在线看| 欧美日韩性视频在线| 91久久精品久久国产性色也91| 欧美亚洲一级片| 国产精品丝袜高跟| 一本色道久久88综合亚洲精品ⅰ| 国产a∨精品一区二区三区不卡| 国产精品自产拍在线观看中文| 成人黄色av播放免费| 色av吧综合网| 欧美男插女视频| 欧美日韩综合视频网址| 成人午夜小视频| 日韩精品中文字幕在线观看| 亚洲视频在线免费观看| 精品亚洲一区二区三区在线观看| 欧美野外wwwxxx| 国产精品成熟老女人| 亚洲成人网久久久| 久久影院资源站| 欧美激情按摩在线| 国内精品模特av私拍在线观看| 久久人人爽人人| 中日韩美女免费视频网址在线观看| 亚洲国产天堂久久综合| 欧美剧在线观看| 欧美成人午夜激情| 欧美高清视频免费观看| 日韩精品久久久久| 久热精品视频在线观看一区| 亚洲加勒比久久88色综合| 欧美电影免费观看大全| 精品福利在线视频| 亚洲人在线观看| 欧美中文字幕在线观看| 国产欧美日韩免费| 在线精品国产欧美| 91夜夜揉人人捏人人添红杏| 国产精品免费电影| 亚洲精品狠狠操| 午夜精品久久久久久久白皮肤| 国产一区av在线| 亚洲欧美国产精品久久久久久久| 欧美激情喷水视频|