[질문] MySql에 이미지 저장에 대한 질문드립니다.

sangsik의 이미지

------------------------------------
프로그램 설명: 이미지를 MySql에 저장
DataBase : MySql
Language : VB 6.0
입력 컬럼 타입 : BLOB
-------------------------------------

MySql에 이미지를 저장할려고 하는데요.
아래와 같은 에러가 납니다.. 어떤 환경을 맞춰줘야 하는 것이 있나요 ?

테스트 해본 사항은 Oracle에는 잘 입력이 되는데..
My-Sql에만 이런 에러가 납니다.
다른 사람의 말로는 Ms-Sql에도 잘 입력이 된다고 하네요..
똑같은 소스인데두요...

아래는 에러 내용입니다.. 먼저 감사드립니다..

----------------- Error 내용 -----------------------------------
2147467259 (80004005) 런타임 오류가 발생하였습니다.
[Microsoft] [ODBC 드라이버 관리자] 잘못된 문자열 또는 버퍼 길이입니다.
-----------------------------------------------------------------

----------------- 소스 원본입니다 -----------------------------
Private Sub Form_Load()

Dim strTemp As String
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset


'con.Open ("DSN=kdb;UID=kdb;PWD=kdb;")
con.Open ("DSN=sign;UID=testuser;PWD=test1234;")
con.BeginTrans

sql = ""
sql = sql & vbCrLf & "SELECT file2 "
sql = sql & vbCrLf & " FROM files"
sql = sql & vbCrLf & " WHERE file_size=1"

rs.Open sql, con, adOpenDynamic, adLockOptimistic, adCmdText

strTemp = FileToBLOB("c:\mky.bmp", rs(0), False, 8192)

MsgBox (strTemp)

rs.Update
rs.Close

MsgBox ("모두성공")
End Sub

Public Function FileToBLOB(ByVal imgFilePath As String, _
ByRef objField As ADODB.Field, _
Optional ByVal bUseStream As Boolean = True, _
Optional ByVal lngChunkSize As Long = 8192) As Boolean
On Error Resume Next

Dim objStream As ADODB.Stream
Dim intFreeFile As Integer
Dim lngBytesLeft As Long
Dim lngReadBytes As Long
Dim byBuffer() As Byte
Dim varChunk As Variant

If bUseStream Then
Set objStream = New ADODB.Stream
With objStream
.Type = adTypeBinary
.Open
.LoadFromFile imgFilePath
objField.Value = .Read(adReadAll)
End With
Else
With objField

If (.Attributes And adFldLong) <> 0 Then
intFreeFile = FreeFile
Open imgFilePath For Binary Access Read As #intFreeFile
lngBytesLeft = LOF(intFreeFile)
Do Until lngBytesLeft <= 0
If lngBytesLeft > lngChunkSize Then
lngReadBytes = lngChunkSize
Else
lngReadBytes = lngBytesLeft
End If

ReDim byBuffer(lngReadBytes)

Get #intFreeFile, , byBuffer()
objField.AppendChunk byBuffer()

lngBytesLeft = lngBytesLeft - lngReadBytes
DoEvents

Loop
Close #intFreeFile
Else
Err.Raise -10000, "FileToBLOB", _
"The Database Field does Not support Long Binary Data."
End If

End With

End If

If Err.Number <> 0 Or Err.LastDllError <> 0 Then
FileToBLOB = False
Else
FileToBLOB = True
End If

End Function