[질문] 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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.