Ver Mensaje Individual
  #1  
Antiguo 20-06-2014
pjmedina pjmedina is offline
Miembro
 
Registrado: abr 2006
Posts: 84
Reputación: 19
pjmedina Va por buen camino
Question ¿Cómo calcular el tamaño de datos importados?

Buenas a todos,

a ver si alguien me puede echar una mano.

Tengo una aplicacion que hace traspasos entre dos bases de datos de firebird que son similares. Estoy usando los componentes TIBSql para hacer la lectura "SELECT" de la base de datos Origen y para la escritura en la base de datos destisno "INSERT".
Estoy utilizando también Delphi XE5, pero me da igual si es para otra versión de delphi.

Quería saber como podría obtener el tamaño en bytes de los datos leidos en la consulta, sin lanzar una consulta adicional.


Explico un poco el ejemplo que hay acontinuacion:
- QMostrar: es un TIBSQL con un select a una tabla en la base de datos origen.
- QInserta: es un TIBSQL con un insert a una tabla en la base de datos destino.
- lselcampos: Es una lista con los titulos de las columnas del select. En el select y en el insert se llamaran igual.

Qmostrar podría ser:
Código SQL [-]
Select CODIGO, NOMBRE, PRECIO, IMAGEN_BLOB from articulo order by codigo asc
QInserta :
Código SQL [-]
insert into articulo (CODIGO, NOMBRE, PRECIO, IMAGEN_BLOB) values (:CODIGO,:NOMBRE,:PRECIO,:IMAGEN_BLOB)
Código:
lselcampos: ['CODIGO', 'NOMBRE', 'PRECIO', 'IMAGEN_BLOB']
Código Delphi [-]
var  ivar:TIBXSQLVar; 
  i:integer; 
begin  
  QMostrar.ExecQuery; 
  while not(QMostrar.Eof) do 
  begin  
    for i:=0 to lselcampos.Count-1 do  
    begin   
      QInserta.ParamByName(lselcampos[i]).Clear;   
      ivar:=QMostrar.FieldByName(lselcampos[i]);   
      if Not(ivar.isNull)then   
      begin    
        QInserta.ParamByName(lselcampos[i]).Assign(ivar);   
      end;  
    end;  
    QInserta.ExecQuery 
  end; 
end;
Espero podais ayudarme. Gracias

Última edición por Casimiro Notevi fecha: 20-06-2014 a las 21:32:24.
Responder Con Cita