Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Cita:
Empezado por anubis Ver Mensaje
Si es correcto, si lo pones en otra base de datos y se perdieran los blob, por lo menos el resto de los datos quedarian intactos, aunque tambien ha habido corrupcion de datos en firebird.

De todas formas, nose porque no hay un componente para leer pdf en lazarus. Segun habeis dicho en otros post, de excel es complicado que lo hubiera porque excel es privativo, pero esta libreoffice que tambien los lee, pdf seria privativo porqque es de acrobat, pero linux tambien tiene okular por ejemplo.

De ahi, siendo un componente que se suele usar, el pdf, y el excel (de excel si hay pero reducido), no lo haya para lazarus, teniendo en cuenta que hay bastantes componentes, lease el codetyphon que trae muchos.

lo del tprocess y el shellexecute los tengo que ver a fondo porque de momento no me entero muy bien como paso un pdf a un stream y de ahi a un blob y viceversa, pero seguire intentando.

Saludos
Pos de excel si hay y se llama TSpreadsheet, para leer archivos de pdf no conozco.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #2  
Antiguo 13-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 20
anubis Va por buen camino
Casimiro, lo que propones puede ser una solucion, pero si existiera un componente como el timage para hacer lo mismo con los pdf estaria bien, pero no lo hay, el shellexecute y el tprocess todavia los estoy digeriendo , porque todavia no veo como abrir y pasar lo que he abierto (dentro de un tprocess o shellexecute, que todavia esta complicado) a un stream y de ahi guardarlo (el stream ya lo uso con las imagenes).

mightydragonlor, si, ese componente lo he usado, pero esta muy limitado, por ejemplo, combinar celdas no se puede, y determinadas fórmulas tampoco.
Responder Con Cita
  #3  
Antiguo 13-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Esto abre la imagen con el programa que tenga asociado windows para hacerlo:

Código Delphi [-]
ShellExecute(0, 'open', 'c:\Windows\System32\rundll32.exe', 'c:\Windows\System32\shimgvw.dll,ImageView_Fullscreen c:\imagen.jpg', nil, SW_NORMAL);

Antes tienes que guardar la imagen en disco, claro.
Responder Con Cita
  #4  
Antiguo 13-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 20
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
  #5  
Antiguo 13-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
  #6  
Antiguo 21-09-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 20
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
  #7  
Antiguo 21-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:19:52.


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