Hola Al bueno primeramente creo que debo una disculpa por el mensaje tan tétrico que he enviado...
Primeramente explicare que es lo que deseo hacer…
Bueno necesito realizar una aplicación que copie la estructura y los datos de una base de datos Access (Cualquiera que especifique el usuario) a un Servidor SQL Server que yo le especifique.
Ahora bien se que existen herramientas en SQL Server que me permiten copiar datos a gran velocidad como los DTS… pero no me sirven pues la BD Access es variable por así decirlo.
Entonces no he hallado otra manera que la especificada
Código Delphi
[-]
Var
Arr:Variant;
begin
arr:=VarArrayCreate([0, TbOrigen.FieldCount-1], varVariant);
while not TbOrigen.Eof do begin
for i:=0 to TbOrigen.FieldCount-1 do
arr[i]:= TbOrigen.Fields[i].VALUE;
Tb_Destino.AppendRecord([arr]);
TbOrigen.Next;
end;
end;
El error que me envia es el siguiente
“Could not convert variant of type (Array Variant) into type (String).”
Ahora si en el AppendRecord lo pongo asi…
Código Delphi
[-]
Tb_Destino.AppendRecord(arr);
De todas formas Al como tu dices es muy lento pues yo lo hacia asi…
Código Delphi
[-]
while not Tb_Origen.Eof do begin
for i:=0 to Tb_Origen.FieldCount-1 do
Tb_Destino.Fields[i].AsString:= Tb_Origen.Fields[i].AsString;
try
Tb_Destino.Post;
except
Tb_Destino.Cancel;
end;
Tb_Origen.Next;
end;
y realmente en tablas con mas de 100 000 registros se demoraba bastante. Entonces me dijeron que de la primera forma es mas rápido pero no he dado en como hacerlo.
Entonces si alguien conoce algún método distinto a este pero que sea mas optimo que no dude en publicarlo…
Mil gracias de antemano sin más
Mystery