InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosEmail
SQL
  Tutorial SQL
SQL Server
  Tutorial de Transact-SQL
ORACLE
  Tutorial PL/SQL
.NET
  Introducción a.NET
  Conceptos generales .NET
  Tutorial C#
  LinQ
Reina Roja
  Humor
  Bibliografia
  Acerca de ...

Afiliados
La Web del programador
MundoProgramacion

Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo
tema iniciado por Laetitia
Mensaje recibido el [26/01/2005 11:5:11]


Hola:

Tengo problemas con un proyecto en Visual Basic 6.0. Originalmente, este sistema fué creado para conectarse a una base de datos en access 97. En esta base de datos, se almacenan dos campos de tipo OLE (una foto y una firma), que son capturados a través de un software ya obsoleto llamado VSC2 que se utiliza para crear las credenciales de los empleados y sus derechohabientes.

El problema es que ahora se necesita migrar el sistema para que accese la base de datos pero en access 2000, ya que se pretende que también se cambie el software que crea las credenciales. El nuevo software (DOLPHIN), puede trabajar con tablas de access 2000 y no de access 97. Ya he podido modificar todos los programas del módulo creado en Visual Basic menos uno. No he podido lograr que un proceso que debe pasar el campo de foto y firma a otra tabla en la misma base de datos funcione. El tipo de conexión que estoy utilizando es a través de un ODBC y declarando mis recordsets como ADODB.

¿Alguien sabe cómo puedo lograrlo?, he utilizado incluso las instrucciones Getchunk y AppendChunk, pero nada, no lo he conseguido.

Por favor ayúdenme.

De antemano gracias.

 


 RE: Como pasar a traves de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por DevJoker [27/01/2005 01:55:24]
 RE: diferentes formas que hay para una base de access con Visual Basic por ana [14/06/2006 02:59:02]
 RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por ana [14/06/2006 03:1:12]
 RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por Devjoker [15/06/2006 12:56:34]
 yo logre guardar la ruta de la imagen y sacar varias imagenes de mi base de datos en acces por medio de esas rutas pero.. por prinpiante programador [10/03/2008 12:48:19]
 RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por aldeamedia [10/03/2008 01:5:31]

 
RE: Como pasar a traves de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por DevJoker
Respuesta recibida el [27/01/2005 01:55:24]

Hola lo que tienes que hacer es sacar las imágenes a disco , y una vez que las tengas , volver a leerlas en forma binaria y grabar en la bd. Te mando funciones que hacen todo esto.

' Función que saca el campo OLE a disco (tendras que retocarla seguramente porque usa siempre el mismo nombre de archivo y esas cosas)

Public Function RecuperarImagen(Imagen As ADODB.Field) As string

On Error GoTo ERROR:

Dim n As Integer
Dim X As Long

Dim tb() As Byte 'Variable a almacenar en bmp
Dim varImagen As Variant 'Variable para de donde viene el arreglo

 

If IsNull(varImagen) Then
    GoTo salida
End If


tb = Imagen.Value
Dim ruta As String
ruta = App.Path & "\tmp.bmp"
If Dir$(ruta) <> "" Then
    Kill ruta
End If

n = FreeFile

Open ruta For Binary As n
Dim LONGITUD As Long
LONGITUD = UBound(tb())
Dim i As Long
For i = 0 To LONGITUD
    Put #n, , tb(i)
Next
Close #n

RecuperarImagen = ruta
salida:
Exit Function
ERROR:
    'manejar el error
    Resume salida


End Function

Una vez que tenemos la imagen en disco, la cargamos en un array de bytes con esta función:

Public Function f_Convierte_Binario(Imagen As String) As Variant
On Error GoTo ERROR:

Dim i As Integer
Dim X As Long
Dim tb() As Byte
i = FreeFile

Dim ll_lon As Long
Open Imagen For Binary As i
ll_lon = LOF(i)
ReDim Preserve tb(ll_lon + 1)
For X = 0 To ll_lon
    Get #i, , tb(X)
Next
Close #i
salir:
f_Convierte_Binario = tb
Exit Function
ERROR:
   'Manejar el error
    Resume salir
   
End Function

En este punto ya solo falta pasar los datos al recordset, lógicamente debes adaptar la select, los campos y la conexion

Dim binario() As Byte
binario = f_Convierte_Binario("ruta de la imagen")
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "Select id,imagen from TuTabla where id =3",conexion, adOpenStatic, adLockOptimistic
rst.Fields("imagen") = binario()
rst.Update
rst.Close

Saludos


 
RE: diferentes formas que hay para una base de access con Visual Basic por ana
Respuesta recibida el [14/06/2006 02:59:02]
diferentes formas que hay para una base de access con Visual Basic

 
RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por ana
Respuesta recibida el [14/06/2006 03:01:12]

por favor ayudame

gracias

 


 
RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por Devjoker
Respuesta recibida el [15/06/2006 12:56:34]
¿Que es lo que quieres hacer?

 
yo logre guardar la ruta de la imagen y sacar varias imagenes de mi base de datos en acces por medio de esas rutas pero.. por prinpiante programador
Respuesta recibida el [10/03/2008 12:48:19]
lo que yo quiero es saver una forma de como guardar una imagen con el common dialogo o algo asi si me pueden decir se los agradesere de antemano grasias

 
RE: Cómo pasar a través de un proyecto en Visual Basic 6 con acceso a base de datos Access 2000 un campo tipo OLE (una foto) a otro campo del mismo tipo por aldeamedia
Respuesta recibida el [10/03/2008 01:05:31]
Con el common dialog sólo seleccionas la ruta de la imagen luego tienes que hacer lo que te han dicho más arriba para leerla


 

Email:*
Alias:*
Título:*
Respuesta:*
Notificar:
(Indica si queremos recibir emails)

 
 

devjoker  Te recomendamos además ...
02/10/2006 Tablas unidimensionales    forma parte de...Tutorial C#
03/01/2007 Tipos anulables    forma parte de...Tutorial C#
31/03/2006 Fundamentos de PL/SQL    forma parte de...Tutorial PL/SQL
03/10/2006 Miembros de tipo    forma parte de...Tutorial C#
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
28/08/2006 Ubuntu en VmWare con VMware Tools
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
24/05/2007 Tipos de datos en Transact SQL    forma parte de...Tutorial de Transact SQL
12/01/2006 Programación con PL/SQL    forma parte de...Tutorial PL/SQL
16/10/2006 Delegados y eventos    forma parte de...Tutorial C#

Encuesta
¿Cual es tu lenguaje de programación favorito?
[Ver] [Votar]