Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias casimiro por perder un poco de tu tiempo .

Creo ver por donde vas.
Si entendí bien con los campos blob, pueden contener cualquier cosa, en este caso, imagenes, pero los guarda en formato binario, y ya es cuestion de encontrar el componente que sea capaz de leerlos, en este caso timage.

Eso funciona bien, pero veo que en el caso del shellexecute, necesitas a fuerza una ruta y un nombre de archivo, cosa que en el blob no tengo.

si es asi verdad?
Responder Con Cita
  #2  
Antiguo 13-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis Ver Mensaje
Gracias casimiro por perder un poco de tu tiempo .
Creo ver por donde vas.
Si entendí bien con los campos blob, pueden contener cualquier cosa, en este caso, imagenes, pero los guarda en formato binario, y ya es cuestion de encontrar el componente que sea capaz de leerlos, en este caso timage.
Eso funciona bien, pero veo que en el caso del shellexecute, necesitas a fuerza una ruta y un nombre de archivo, cosa que en el blob no tengo.
si es asi verdad?
Claro, un campo BLOB almacena lo que quieras.
Cuando se tiene un campo de ese tipo en el que se almacena "cualquier cosa" entonces es necesario tener otro campo que diga qué es, para poder guardarlo en disco y luego abrirlo, ejemplo:

Código SQL [-]
create table tbAlmacen (
  id integer not null,
  descripcion varchar(64),
  tipo varchar(16),
  contenido blob sub_type 0,
  primary key (id)
)
Y el contenido sería algo así:

Código:
1___Tutorial instalación Ubuntu___PDF___%$·/"%&%"%$·"%"··$
2___Foto de nubes_________________PNG___(&/$&$%&$·%$·"%$
3___Listado precios de NAS________TXT___Listado de precios de
4___Foto de moto__________________JPG___(/(//%&·&%$&%"·$
Así puedes extraer el que te interese a un directorio temporal, le pones un nombre temporal y la extensión que has guardado a la hora de crearlo (lo extraes del propio nombre del archivo cuando lo guardaste) y después lo abres como se ha indicado anteriormente.
Responder Con Cita
  #3  
Antiguo 21-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Hola de nuevo,

Estaba probando lo que me Casimiro comentaba pero no me sale,
Código Delphi [-]
VAR
  STREAM:TSTREAM;
  A:TFILESTREAM;
begin
  Stream := ZQuery1.CreateBlobStream(zquery1.FieldByName('facturA'), bmREAD); // Asignamos el BLOB a un stream
STREAM.Position:=0;                         

  A:=TFILESTREAM.Create('D:\PADILLA.JPG',fmCreate);
   A.CopyFrom(STREAM,STREAM.Size);

No se si va por ahi, el pasar el archivo a un directorio temporal, o hay otra forma de hacerlo.

saludos y gracias
Responder Con Cita
  #4  
Antiguo 21-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que no tienes que crear ningún stream, del campo blob lo guardas directamente en el disco, para eso guardamos el tipo de fichero que es.
Código Delphi [-]
undataset.campoblob.savetofile('loquesea.xxx');
Responder Con Cita
  #5  
Antiguo 21-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
si, gracias, tienes razon se podria hacer asi pero intento hacer esto:

Código Delphi [-]
zquery1.FieldByName('factura')
pero no me deja ponerle asblob ni savetofile.

Seguramente sera una tonteria
Responder Con Cita
  #6  
Antiguo 21-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis Ver Mensaje
si, gracias, tienes razon se podria hacer asi
¿Pero así te funciona?
Responder Con Cita
  #7  
Antiguo 21-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Mas que nada porque no me deja poner mas porque no lo hay, nose cual es la instruccion para que haga l oque me dices.

gracias de nuevo
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cual es la mejor forma de conectar con la BD GerTorresM Conexión con bases de datos 1 11-01-2010 16:51:47
Sobre cuál es la mejor opción para trabajar con Word Gabo Servers 6 16-01-2008 13:36:21
Eliminar Codigo Cual es la mejor Forma ? sierraja Varios 1 12-04-2007 00:41:00
cual es la mejor forma de logearse a mysql... Arturo MySQL 1 11-10-2006 17:45:01
cual es la mejor forma ? martita Varios 14 07-07-2005 19:35:55


La franja horaria es GMT +2. Ahora son las 14:02:10.


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