FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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... |
|
|
|