Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2005
Noela Noela is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
Noela Va por buen camino
Smile Objecto OLE. Access

Hola:

Estoy copiando datos de una base de datos Access a una base de datos paradox y me he encontrado con el siguiente problema.

Uno de los campos de la Tabla de Acces es de tipo Objecto OLE, yo lo que quiero es pasar a la base de datos de Paradox el " path " del Objecto OLE guardado en ese campo. Mi pregunta es....como consigo el path de ese objeto??

Me es indiferente hacer el codigo para obtener el path del campo em Delphi
o en VBA.

Espero que alguien pueda ayudarme.

Gracias de antemano

Saludos
Responder Con Cita
  #2  
Antiguo 12-01-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Un objeto OLE en Access es un tipo de campo, por lo tanto no puedes pasarle el camino donde se halla, para ello habría que guardarlo en disco, por ejemplo una foto y luego pasar el camino en donde se encuentra, por ejemplo guardándolo en un campo texto y luego recuperar dicho archivo cuando lo demande el usuario, de lo contrario el objeto OLE, seguirá alojado en la base de datos MDB correspondiente que como sabes es un solo archivo en el que se alojan las tablas, consultas, Formularios, Informes, Macros y código VB, si existiera.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 13-01-2005
Noela Noela is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
Noela Va por buen camino
Hola marcoszorrilla

Gracias por respoder al hilo.

Efectivamente, como tu bién dices el campo de tipo Objeto Ole de la tabla en Access está guardado en disco. En realidad lo que guarda el campo de la tabla Access es un enlace al archivo que se haya asignado a ese registro, que en este caso es una foto.

Yo no quiero pasar el objeto Ole a la Tabla en Paradox, lo que quiero es crear un campo en la tabla Paradox de tipo String que guarde el path de la fotografía.

Lo que yo sigo sin saber es como averiguar el path del archivo al que hace referencia el campo de la Tabla de Acces.

Gracias

Responder Con Cita
  #4  
Antiguo 13-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Noela
...como tu bién dices el campo de tipo Objeto Ole de la tabla en Access está guardado en disco. En realidad lo que guarda el campo de la tabla Access es un enlace al archivo que se haya asignado a ese registro, que en este caso es una foto...
Eso no tiene mucho sentido; Un campo OLE se crea para almacenar imágenes, no el path de las imágenes. Si tuvieras el path el campo sería de tipo String. Por lo tanto el campo OLE de la tabla Access no tiene ningun path almacenado.

Creo que lo que debes hacer (y es lo mismo q te comenteba Marcos) es:

(1) Leer la imagen de la tabla de Access (no el path, puesto que la imagen parece estar "dentro" de la Base de Datos -ya que es un campo OLE-).
(2) Guardarla en disco (en el lugar donde tú decidas -el path que deses-)
(3) Ese path donde has guardado la imagen utilizarlo para escribirlo dentro del campo de tipo String en la tabla Paradox.

Eso al menos es lo que he entendido yo. Perdón si no ha sido así.



Cita:
Empezado por Noela
Hola marcoszorrilla

Gracias por respoder al hilo.

Efectivamente, como tu bién dices el campo de tipo Objeto Ole de la tabla en Access está guardado en disco. En realidad lo que guarda el campo de la tabla Access es un enlace al archivo que se haya asignado a ese registro, que en este caso es una foto.

Yo no quiero pasar el objeto Ole a la Tabla en Paradox, lo que quiero es crear un campo en la tabla Paradox de tipo String que guarde el path de la fotografía.

Lo que yo sigo sin saber es como averiguar el path del archivo al que hace referencia el campo de la Tabla de Acces.

Gracias

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-01-2005
Noela Noela is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
Noela Va por buen camino
Hola Neftali:

Si que es dificil hacerse entender! )

Voy a intentar explicarlo una vez más....

Mi tabla en Access tiene varios campos, todos ellos guardan la información relacionada con fotografias, uno de esos campos de la tabla es de tipo Objeto OLE, este campo me sirve para ir a la fotografía relacionada con el registro actual cuando estoy en el formulario que hace referencia a la tabla. Todas las fotografías relacionadas con los registros estan guardadas en el disco y no en la tabla, la tabla sólo guarda un LINK a la fotografía. De modo que si yo hago modificaciones el fichero original también es alterado.

Yo lo que estoy haciendo es pasar la información que contiene la tabla de Access a una nueva en Paradox. Está claro que yo se donde se hallan las fotografias, ya estan guardaditas en el disco en su respectivo directorio, lo que necesito es que al pasar los datos a Paradox, el registro correspondiente haga referencia a la foto relacionada, para ello debo saber el path donde está guardada la fotografía a la que hace referencia el link de la tabla de Access.

Como bién entenderás es mucho más facil hacer esto (si es posible!) en código, que tener que copiar uno a uno de una a otra tabla, el path al que hace referencia el link para los 2000 registros que tengo en la tabla de Access.

Para que te quede claro que el objeto Access no guarda un fichero y si un link te voy a poner un ejemplo. Crea una tabla com un tipo Objeto Ole, y guarda en el una imagen que tengas guardada en algun directorio de tu disco, puede ser usando el menú de Access, insertar objeto etc.... y luego abre la imagen desde la tabla, luego cierrala.

Una vez hecho esto ve al directorio donde tienes guardada la imagen y muévela para otro directorio distinto del original. Ahora una vez más intenta abrir la imagen desde la tabla de Access, comprobarás que Access no encuentra el archivo ya que habia guardado el link a la imagen con su ubicación original.

Si Access tuviera guardada la imagen en la tabla, no tendria problemas para abrirla nuevamente aunque tu cambiaras la ubicación de la imagen de tu disco.

Esta claro que Access guarda en algún lugar el path de ese archivo. La pregunta es como consigo yo llegar a ese lugar?!!

Lo que yo necesito saber es como consigo averiguar el path al que hace referencia el link del Objeto Ole de Access para poder copiarlo a la nueva tabla em Paradox. Alguién sabe como hacerlo??!!!

Gracias.
Un saludo.

Responder Con Cita
  #6  
Antiguo 14-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Noela
...Para que te quede claro que el objeto Access no guarda un fichero y si un link te voy a poner un ejemplo. Crea una tabla com un tipo Objeto Ole, y guarda en el una imagen que tengas guardada en algun directorio de tu disco, puede ser usando el menú de Access, insertar objeto etc.... y luego abre la imagen desde la tabla, luego cierrala.

Una vez hecho esto ve al directorio donde tienes guardada la imagen y muévela para otro directorio distinto del original. Ahora una vez más intenta abrir la imagen desde la tabla de Access, comprobarás que Access no encuentra el archivo ya que habia guardado el link a la imagen con su ubicación original.
OK, si no he entendido mal, lo que haces es "VINCULAR" el objeto OLE (problema mío, que no te entendí bien la primera vez ). El problema es que la información que se guarda en ese tipo de campos cuando se vinculan imágenes tiene un formato especial (se utiliza el empaquetador de objetos -packager.exe- normalmente en el directorio system32 de windows).
Tal vez deberías buscar en las páginas de MS a ver si encuentras algo sobre éste formato.
No te puedo ayudar más en éste caso, ya que la info. no está accesible directamente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-01-2005
Noela Noela is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
Noela Va por buen camino
Gracias por tu interés Neftali

De momento no he resuelto el problema.

Si lo consigo dejaré por aqui la solución.
Responder Con Cita
Respuesta



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 04:19:59.


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