![]() |
guardar archivos en un campo blob
Hola a todos, quiero guardar archivos(*xls, *.doc, *.jpg) en un campo blob, me gustaria saber como hacerlos, utilizo firebird con fibplus, algun componente para realizar esta operacion, o codigos que pueda iluminarme
desde luego les agradesco por su ayuda |
Debes hacerlo mediante Streams. Los Streams son flujos de datos (un buffer, vamos) bastante potentes.
Saludos |
Saludos.
En la pagina de ellos en la sección de artículos explican el manejo de Blob con sus componentes. Hasta luego. |
Leer campo bloB
gracias por su ayuda, me guardo, ahora como abrir, sis .xls en excel o .doc en word
|
Usa ShellExecute / WinExec / ExecandWait para que abra el programa con el que tiene asociado dicha extensión (OpenOffice, Word, wordpad, etc). Busca por el foro, hay muchísimos ejemplos.
Saludos |
Cita:
muy bien, pero si despues deseo guardar el archivo de tipo TMemeryStream en un campo de tipo blob en una tabla de Mysql como haria??? |
¿no has leído bien el código?. Los campos Blob tienen un metodo LoadFromStream:
|
Cita:
Si amigo he leido el codigo pero al hacer ese mismo proceso me da un error 'Invalid class typecast'
|
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í:
Si no tienes los campos persistentes, debes hacer el moldeo correcto según tus componentes:
O lo que es lo mismo:
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 |
Cita:
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 |
No uso mySql ni ADO, esperemos que otro forista pueda echarte un cable.
Saludos |
La franja horaria es GMT +2. Ahora son las 04:01:02. |
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