Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-05-2004
pzhero pzhero is offline
Miembro
 
Registrado: abr 2004
Posts: 28
Poder: 0
pzhero Va por buen camino
Question Imagenes(BLOB) Firebird con VB6

Hola a Todos aqui nuevamente moliendo.....

estoy intentando iniciar un proyecto en firebird 1.5 pero el acceso lo hago con Visual Basic 6 con el cual ya me puedo conectar y hacer consultas, el problema que tengo ahora, es con las imagenes, como ustedes saben, (si han leido mis consultas anteriores) estoy tratando de "migrar" de cierta manera una aplciacion que tengo en Oracle con el cual manejo imagenes, con oracle no tengo problemas utilizo la librerias OO4O, pero bueno... obviamente con firebird seria de otra manera el tratamiento del tipo BLOB con VB, he tratado de utilizar el tipo de datos Stream que proporciona la ADODB pero no funciona, al hacer el update me da un error "El proveedor de datos u otro servicio devolvio un esta do de E_FAIL" crei que tal vez era al go del objeto Stream e intente con los Métodos GetChunk y AppendChunk y me devuelve el mismo error, probé con SqlServer y Mysql y todo resultó muy bien solo con firebird es que me da este error y pues el proyeto es en Firebird que necesitaria continuarlo, y el manejo de imagenes es escencial en el proyecto a continuacion pongo los dos codigos:

Utilizando ADODB.Stream

Dim StrM As ADODB.Stream
Rs.Open "FOTOS", Cnn, adOpenStatic, adLockOptimistic, adCmdTable
Rs.AddNew
Set StrM = New ADODB.Stream
StrM.Type = adTypeBinary
StrM.Open
StrM.LoadFromFile "c:\monofasico1.gif"
Rs!IdImg = 234
Rs!foto = StrM.Read
Rs.Update
StrM.Close
Rs.Close




Utilizando Chunk's

Public Function ImgToFld(fldDestino As ADODB.Field, Optional sRutaImg As String) As Boolean
On Error GoTo lblError
Dim iOffset As Long
Dim iSizeFile As Long
Dim iArchivoImg As Integer
Dim VectorChunk() As Byte
Dim iFragmentOffset As Integer
Dim i As Integer
Dim lChunks As Long

ciSizeChunk = 100 'por ejemplo
iArchivoImg = FreeFile
Open sRutaImg For Binary Access Read As iArchivoImg
iSizeFile = LOF(iArchivoImg)
If iArchivoImg = 0 Then
Close iArchivoImg
End If

lChunks = iSizeFile \ ciSizeChunk
iFragmentOffset = iSizeFile Mod ciSizeChunk
'Copia el ultimo pedazo

ReDim VectorChunk(iFragmentOffset)
Get iArchivoImg, , VectorChunk()
fldDestino.AppendChunk VectorChunk()

ReDim VectorChunk(ciSizeChunk)
iOffset = iFragmentOffset
For i = 1 To lChunks
Get iArchivoImg, , VectorChunk()
fldDestino.AppendChunk VectorChunk()
Next
ImgToFld = True

Exit Function
lblError:

End Function


La cual llamo desde el siguiente bloque de codigo

Rs.Open "FOTOS", Cnn, adOpenStatic, adLockOptimistic, adCmdTable
Rs.AddNew
Rs!IdImg = 234
ImgToFld Rs!foto , "c:\monofasico1.gif"
Rs.Update
Rs.Close



he buscado documentacion y aun no encuentro si pudieran decirmem donde puedo encontrar la verdad no se que onda y gracias por su valiosa ayuda...
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:53:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi