Bien estoy armando mi carnet de impresion
y ya logre realizar la consulta de dos tablas, pero para que se me facilite quiero clonarlo hacia
una sola tabla esta consulta desde Firebird
Es posible hacerlo.?
Una tabla es de datos a otra es de fotos binario de esto hago la consulta.
pero quiero pasarlo a otra tabla solo las que necesito y de ahi con el reporteador leo
los datos y de ahi mando a impresion
Espero me ayuden
Gracias
[RESUELTO] Como Clonar una consulta a una tabla con datos binarios
Started by
ematrix
, Aug 29 2011 03:40 PM
5 replies to this topic
#1
Posted 29 August 2011 - 03:40 PM
#2
Posted 29 August 2011 - 04:15 PM
Que tal ematrix, ¿que es lo que se facilitaría teniendo datos y blobs(imagenes) en una sola tabla?
Por SQL no he movido nunca blob's de datos, si no a través de una aplicación externa que lea estos y vuelva a insertar o actualizar el nuevo campo de mi tabla.
En lo particular he manejado firebird con blob's con documentación digitalizada y la base se carga mucho, llegué a tener como 6 GB de solo blob's y los respaldos de esta base se tardaban un poco y eran vari0s GB de datos cada vez.
Creo sería bueno si vas a tener varios datos de este tipo hacer una base de solo blob's que respaldes y mantengas por separado de los datos, claro esto solo lo vas a tener con firebird 2.5, es solo un consejo.
Saludos.
Por SQL no he movido nunca blob's de datos, si no a través de una aplicación externa que lea estos y vuelva a insertar o actualizar el nuevo campo de mi tabla.
En lo particular he manejado firebird con blob's con documentación digitalizada y la base se carga mucho, llegué a tener como 6 GB de solo blob's y los respaldos de esta base se tardaban un poco y eran vari0s GB de datos cada vez.
Creo sería bueno si vas a tener varios datos de este tipo hacer una base de solo blob's que respaldes y mantengas por separado de los datos, claro esto solo lo vas a tener con firebird 2.5, es solo un consejo.
Saludos.
#3
Posted 29 August 2011 - 05:10 PM
Bien son credenciales tipo carnet en una tabla solo tengo los datos y en la otra las fotos esto lo diseñe asi para administrar mejor el rendimiento.
Despues los junto en una consulta. pero de una tabla de 15,000 registros solo quiero algunas es por eso que deseo crear una tabla temporal en donde guardar los datos y la foto, para despues imprimir los carnet's, aunque el modo terico sencillo pense que se podia con algunas instrucciones en Firebird co el insert Select, viendo claramente el problema tendre que hacer via aplicacion en c# es el que trabajo. y es lo la tendencia me esta marcando con tu aprecacion de este problema.
Saludos
#4
Posted 30 August 2011 - 08:01 AM
Mmm ya veo, te recomendaría hacer buen uso de el inner join y condiciones correctamente el query para no estar trayendo blobs que no vayas a utilizar, que que por el tamaño de los mismos hacen lenta muchas veces la traida de datos, checa por ahi alguna propiedades como el fetch del componente u objeto con el que realices la consulta para no barrer con todos los datos sino ir trayendo parte por parte, tal vez eso ayudaría un poco.
Saludos
Saludos
#5
Posted 30 August 2011 - 08:17 AM
No se que componentes de conexión estés utilizando, no importa cuales sean, bien podrías adicionalmente utilizar la potencia de los TClienDatasets, que tienen la facilidad para ser clonados, o una vez "traida" la consulta, tendrías la posibilidad de guardarla en el lado cliente en formato XML para ser usada cuando quieras sin necesidad de relanzar la consulta.
Saludos
Saludos
#6
Posted 12 October 2011 - 05:35 PM
SOLUCIONADO
ya quedo despues de indagar
para los que desean aqui esta
[firebird]SET TERM ^ ;
CREATE PROCEDURE COPYBLOB (
OLDROWID Varchar(9),
NEWROWID Varchar(9) )
AS
begin
Update TMP_CREDE b
set b.FOTO_BLOB = (select first 1 a.FOTO_BLOB from FOTO_ALUM a where a.ID_MATRIX=:OldRowID)
where b.ID_MATRIX = :NewRowID;
end^
SET TERM ; ^
GRANT EXECUTE
ON PROCEDURE COPYBLOB TO "PUBLIC";
GRANT EXECUTE
ON PROCEDURE COPYBLOB TO SYSDBA;[/firebird]
Saludos
ya quedo despues de indagar
para los que desean aqui esta
[firebird]SET TERM ^ ;
CREATE PROCEDURE COPYBLOB (
OLDROWID Varchar(9),
NEWROWID Varchar(9) )
AS
begin
Update TMP_CREDE b
set b.FOTO_BLOB = (select first 1 a.FOTO_BLOB from FOTO_ALUM a where a.ID_MATRIX=:OldRowID)
where b.ID_MATRIX = :NewRowID;
end^
SET TERM ; ^
GRANT EXECUTE
ON PROCEDURE COPYBLOB TO "PUBLIC";
GRANT EXECUTE
ON PROCEDURE COPYBLOB TO SYSDBA;[/firebird]
Saludos