Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: pedroesca en Abril 19, 2017, 08:16:15 pm
-
Buenas a todos!!!! pareciera ser un tema de "nunca acabar" esto, pero bueno. El tema es que siempre usé este code para guardar las imagenes en la BD y siempre me funcionó de mil maravillas (aclaro que me ayudaron ustedes acá), pero siempre usé como Base de datos a ACCESS; ahora pasé hace un tiempo a MySql y cuando quiero utilizar esta rutina para guardar una imagen, me tira un error que dice: "Información de columna de clave insuficiente para realizar la operación Update o Refresh". Aclaro por las dudas que la consulta se genera bien, el tipo de datos es LongBlob, etc.
El código es el siguiente.
Public Sub SAVE_IMAGE(Path_IMAGE As String, Tabla As String, ID_Campo As String, ID_VALUE As Long, Campo As String)
On Error GoTo ERR_HANDLER:
Dim i As Integer
If Len(Dir(Path_IMAGE)) = 0 Then
MsgBox "Ruta de Archivo inválida", vbExclamation, "Aviso"
Exit Sub
End If
Open Path_IMAGE For Binary Access Read As #1
lngLengh = LOF(1)
If lngLengh = 0 Then
Close
Exit Sub
End If
intChunks = lngLengh \ 1024
intFragment = lngLengh Mod 1024
ReDim arrImagen(intFragment)
Get 1, , arrImagen()
'''''''''
OpenRECORDSET "SELECT " & Campo & " From " & Tabla & " Where " & ID_Campo & "=" & ID_VALUE, ESCRITURA, Rs
Rs(Campo).AppendChunk arrImagen()
ReDim arrImagen(1024)
For i = 1 To intChunks
Get 1, , arrImagen()
Rs(Campo).AppendChunk arrImagen()
Next i
Rs.Update
Rs.Close
Close
ERR_HANDLER:
If Err.Number = 0 Then
Exit Sub
Else
MsgBox "Se ha producido un error (" & Err.Number & " -- " & Err.Description & ") Es posible que la imagen no se haya guardado", vbOKOnly + vbCritical, "Error"
Close
Err.Clear
End If
End Sub
Existe alguna diferencia al guardar en MySql?
-
SOLUCIONADO: el problema era a nivel Base de Datos, ya que solo traía UN SOLO campo e intentaba actualizarlo con el valor de la imagen, no me permite eso MySql, pero al traer dos campos y actualizar el correspondiente, anda de lujo.
Saludos.