2010-07-30 2 views

답변

2

다음은 몇 가지 코드입니다. Microsoft Active Data Objects 2.x 라이브러리에 대한 참조가 필요합니다. MySQL 용 OLE DB 공급자를 사용합니다 (클라이언트 컴퓨터에 설치해야 할 수도 있음).

Sub StoreBLOB(data() As Byte, key As Double) 
'stores the BLOB byte array into the row identified by the key 
'requires reference to Microsoft Active Data Objects 2.x Library 

On Error GoTo handler: 

    Dim con As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Dim conStr As String 
    Dim strSQL As String 

    'have it return only the record you want to store your blob 
    strSQL = strSQL & "SELECT * FROM YOURTABLE WHERE KEY = " & key 

    'setup connection 
    conStr = conStr & "Provider=MySQLProv;" 
    conStr = conStr & "Data Source=mydb;" 
    conStr = conStr & "User Id=myUsername;" 
    conStr = conStr & "Password=myPassword;" 

    con.ConnectionString = conStr 
    con.Open 

    rs.Open strSQL, con, adOpenDynamic, adLockOptimistic 

    If rs.RecordCount > 1 Then 
     Err.Raise 1001, "StoreBLOB", "Too many records returned from dataset. Check to make sure you have the right key value" 
    Else 
     Err.Raise 1002, "StoreBLOB", "No Records found that match the key" 
    End If 

    rs.Fields("BLOBFIELDNAME").Value = data 
    rs.Update 'store the contents to the database 

    rs.Close 
    con.Close 
    Set rs = Nothing 
    Set con = Nothing 

Exit Sub 
handler: 
    Err.Raise 1003, "StoreBLOB", "Unexpected Error in StoreBLOB. Check that server is running" 
End Sub