InterBase, c++ Builder y campos Blob
Estoy haciendo una aplicación en Borland C++Builder, y manejo una Base de datos de InterBase. En ella necesito guardar videos. (Para que no surga la discusión, son pequeños y ya está evaluada la opción de guardarlos fuera y guardar sólo una referencia al fichero.) Bueno, los videos los guardo en campos Blob. Ahí va mi problema: al guardarlos parece que se guardan bien, porque la base de datos incrementa lo mismo que ocupa el fichero, (para ello utilizo el método loadFromFile(), y luego a la hora de sacarlos, utilizando SaveToFile(), me crea el nuevo fichero pero vacío (0Kb).
No tengo ni idea de porque es. Si alguien sabe algo del tema, porfavor me ayude. Saludos |
Hola
Que componentes estas usando? Yo trabajé con los ibx y dbx. Saludos TJose |
Hola Jose, gracias por responder.
Yo utilizo los componentes ibx. En concreto ahora creo que el problema es al guardarlo en la base de datos. He probado a ver el tamaño del campo blob en el que supuestamente está el video, y me dice que su tamaño es 0. Eso explicaría que lo leo bien, y por eso me crea el fichero vacío. Espero que me puedas contar como insertarlo a ver si van por ahí los tiros. Muchas gracias por todo |
Hola
dstDocumentacion es un TIBDataSet con un select que incluye el campo Documento El ejemplo muestra como guardar y recuperar el documento (exportar - importar). Recuerdo haberlo probado con archivo muy grandes y funcionaba. La definición del campo documento está dada por:
Código:
void __fastcall TfrmPrincipal::aclImportarExecute(TObject *Sender) TJose |
Voy a probarlo a ver si consigo hacerlo funcionar y te cuento.
Muchísimas gracias. Alberto |
Problema resuelto
:) :) :) :) :) :) :) :) :) :)
Hola Jose, la verdad es que al principio no conseguía hacerlo funcionar. Pero me diste algunas pistas para solucionarlo. contigo y con la ayuda de un programa que desde aquí hago publicidad, ya que me ha parecido algo cojonudo. Si utilizais InterBase, olvidaros de IBConsole y utilizad IBExpert, os ayudará mucho más. Bueno, el problema era que se me guardaba en la bbdd pero no se guardaba la referencia a él dentro del campo blob, pero todavía no se porque, así que la obtengo después de hacer loadfromfile, y se la guardo en el campo. Ahora bien, me surge otro problemilla, creo que similar. A la hora de borrar, me ocurre que se me borra aparentemente bien, pero el tamaño de la bbdd no decrementa. Imagino que unicamente borro la referencia, y no lo que ocupa verdaderamente el fichero. A ver si alguien sabe como puedo hacerlo. Muchas gracias Saludos, Alberto |
Hola
Cita:
Saludos TJose |
muchas gracias, es un gran alivio.
la base de datos podría crecer mucho, pero no creo que se borren muchos, asi que podría pasar de ello, y si no pues probaré el backup/restore. gracce per tutto:) |
La franja horaria es GMT +2. Ahora son las 05:22:48. |
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