Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿no has leído bien el código?. Los campos Blob tienen un metodo LoadFromStream:

Código Delphi [-]
campoBlob.LoadFromStream(ms); // aquí estamos cargando ya el fichero en el campo BLOB
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 07-11-2008
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
¿no has leído bien el código?. Los campos Blob tienen un metodo LoadFromStream:

Código Delphi [-]campoBlob.LoadFromStream(ms); // aquí estamos cargando ya el fichero en el campo BLOB

Si amigo he leido el codigo pero al hacer ese mismo proceso me da un error 'Invalid class typecast'
Código Delphi [-]
(rs.FieldByName('template') as  TBlobField).LoadFromStream(tptStream);
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #3  
Antiguo 07-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Aps, a ver si consigo explicarme.

doble clic a tu TTable, Tquery o lo que sea, si la ventana que aparece está en blanco, tienes que crear los campos persistentes (botón derecho y Add All Fields), ahora selecciona el campo Blob. Verás que en el inspector de objetos ya nos dice que es un TBlobField, bueno, en realidad, dependerá de los componentes de acceso IBX, BDE, ZEOS, etc, será un TIBBlobField, TBDEBlobField, etc...

Si tu campo "template" es ya un TIBBlobField y haces el moldeo de tipos, estás haciendo que coja la clase abstracta TBlobField y allí no está implementada (será virtual y/o abstract), por eso el error que obtienes.

Si añades los campos persistentes, tu linea sería así:
Código Delphi [-]
rstemplate.LoadFromStream(tptStream)

Si no tienes los campos persistentes, debes hacer el moldeo correcto según tus componentes:
Código Delphi [-]
(rs.Fieldbyname('template') as TIBBlobField).LoadFromStream(tptStream)

O lo que es lo mismo:
Código Delphi [-]
TIBBlobField(rs.Fieldbyname('template')).LoadFromStream(tptStream)

De todas formas no uses copy&paste porque seguro te dará error, crea los campos persistentes, en el inspector ves el nombre correcto que usa tus componentes y ya después puedes borrar los campos persistentes y hacerlo por código.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 07-11-2008
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Aps, a ver si consigo explicarme.

doble clic a tu TTable, Tquery o lo que sea, si la ventana que aparece está en blanco, tienes que crear los campos persistentes (botón derecho y Add All Fields), ahora selecciona el campo Blob. Verás que en el inspector de objetos ya nos dice que es un TBlobField, bueno, en realidad, dependerá de los componentes de acceso IBX, BDE, ZEOS, etc, será un TIBBlobField, TBDEBlobField, etc...

Si tu campo "template" es ya un TIBBlobField y haces el moldeo de tipos, estás haciendo que coja la clase abstracta TBlobField y allí no está implementada (será virtual y/o abstract), por eso el error que obtienes.

Si añades los campos persistentes, tu linea sería así:
Código Delphi [-]rstemplate.LoadFromStream(tptStream)


Si no tienes los campos persistentes, debes hacer el moldeo correcto según tus componentes:
Código Delphi [-](rs.Fieldbyname('template') as TIBBlobField).LoadFromStream(tptStream)


O lo que es lo mismo:
Código Delphi [-]TIBBlobField(rs.Fieldbyname('template')).LoadFromStream(tptStream)


De todas formas no uses copy&paste porque seguro te dará error, crea los campos persistentes, en el inspector ves el nombre correcto que usa tus componentes y ya después puedes borrar los campos persistentes y hacerlo por código.

Saludos

Correcto Lepe, todo lo que dices esta muy bien , puede ser que no me he sabido explicar el problema que existe es que estoy usando un recordset el componente ADO, con una tabla en Mysql, y a la Hora de asignar el valor del Template a mi campo de tipo LongBLOB, con el metodo que te describi anteriormente me sale la excepcion de 'Invalid class typecast', nose si en mi ignorancia lo que te voy a decir tengo razon sino te agradezco que me corrijas pero puede ser que no coincidan los tipos de datos TBlobFile con el tipo de dato que utiliza MYSQL en sus campos de tipo BLOB..

Saludos
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #5  
Antiguo 07-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No uso mySql ni ADO, esperemos que otro forista pueda echarte un cable.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Error al guardar Jpeg en Campo Blob El_Perrito Gráficos 6 28-04-2012 20:06:38
¿Como Guardar un Bmp/Jpg en un campo BLOB desde Delphi? LuCkY_007 MySQL 4 18-01-2007 12:05:26
guardar un fichero en un campo blob apicito Firebird e Interbase 2 02-03-2005 12:01:54
¿Como Guardar un "RECORD" en un campo BLOB? sitrico Conexión con bases de datos 5 29-06-2004 17:32:01
Guardar formatos en un campo blob morfeo21 Varios 0 30-06-2003 19:45:53


La franja horaria es GMT +2. Ahora son las 14:25:01.


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