Por si a alguien le sirve he encontrado un método que funciona perfectamente, os lo pongo:
Código:
procedure SincronizarBD;
var
pkg: Variant;
i:integer;
begin
pkg:= CreateOleObject('DTS.Package');
try
pkg.LoadFromSQLServer(datasourceName,UserName,Password,,,,,dtsName),'');
for i := 1 to pkg.steps.count do
pkg.steps.Item(i).executeinMainThread := True;
pkg.FailOnError := true;
pkg.Execute;
MessageDlg('La sincronización se ha realizado correctamente',mtInformation,[mbOK],0);
except
on E: Exception do
begin
showmessage('Error = ' + E.Message);
exit;
end;
end;
pkg.uninitialize;
pkg:=UnAssigned;
end;
Un saludo.