 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 04 Sep, 2009 9:23 am Asunto: Guardar objetos en Firebird |
|
|
De la misma forma que se guardan imágenes en tablas Firebrid, ¿existe la posibilidad de guardar documentos en PDF? Por un tema de seguridad me interesaría poder guardar un PDF en una tabla. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 05 Sep, 2009 11:01 pm Asunto: |
|
|
Efectivamente, solo hay que determinar el tipo de información que debe almacenar el Campo BLOB.
Generalmente aun que esto no es del todo aplicable, pues a veces se declara el campo BLOB como "caiga". Es decir tal y como se piensa, pero existen varios tipos. los cuales a continuación expesifíco pues con la ayuda del siguiente enlace para reafirmar parte de lo expuesto.
Campos BLOB
Sub-Type 0: Generalmente para Datos Binarios(imágenes, exe's, pdf's etc)
Sub-Type 1: Usado para Almacenar y manipular Texto.
Sub-Type 2: Usado para BLR (Representacion de Lenguaje Binario)
Sub-Type 3: Acceso a Listas de Control,
Sub-Type 4: Rangos para verificar cambios (?)
Sub-Type 5: Relaciones y Compilaciones en Funciones.
Sub-Type 6: para rdb$formats
Sub-Type 7: Contiene la descripcion de una Multi-database
Sub-Type 8: No usado, puede ser usado para información de un archivo externo.
En fin que el almacenamiento de un archivo PDF, es posible, pues al igual que las imágenes estas cargando un Archivo Binario, el proceso debe ser a travez de LoadFromFile() y de SaveFileTo(), ya debes "guardar" primero el PDF posteriormente guardarlo como Binario en el campo BLOB y cuando lo recuperas, sacar el Contenido del BLOB grabarlo como PDF, verlo y posteriormente borrar el archivo para no dejar rastro.
Saludos!! _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 16 Sep, 2009 12:58 pm Asunto: |
|
|
¡Hecho! Efectivamente es como César me sugiere. Lo explico.
1. Creo una tabla con un campo tipo Blob.
| Código: | CREATE TABLE Ficheros (Tipo CHAR(3) NOT NULL, Fichero CHAR(50) NOT NULL, Informes BLOB SUB_TYPE 0 SEGMENT SIZE 250) |
2. Creo el PDF; por ejemplo con
| Código: | #include <qrpdffilt>
#include <QRExport>
TQRPDFDocumentFilter *fFiltro = new TQRPDFDocumentFilter("C:\\Listado.pdf");
fFiltro->AddFontMap("Arial:Helvetica");
fFiltro->StartConcat();
fIndPer->qIndPer->ExportToFilter(fFiltro);
fFiltro->EndConcat();
delete fFiltro; |
3. Lo guardo en la tabla y lo borro.
| Código: | Query->Close();
Query->SQL->Text = "INSERT INTO Ficheros (Tipo, Fichero, Informes) VALUES ('PDF', :Fichero, :Informes)";
Query->ParamByName("Fichero")->AsString = "Listado.pdf"
Query->ParamByName("Informes")->LoadFromFile("C:\\Listado.pdf", ftBlob);
Query->ExecSQL();
DeleteFile("C:\\Listado.pdf"); |
4. Para recuperarlo:
| Código: | Query->Close();
Query->SQL->Text = "SELECT * FROM Ficheros WHERE Fichero = 'Listado.pdf'";
Query->Open();
((TBlobField*)Query->FieldByName("Informes"))->SaveToFile("C:\\Listado.pdf"); |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|