Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Copiar tablas de la red a maquina local (https://www.clubdelphi.com/foros/showthread.php?t=92370)

river_1 11-10-2017 07:49:12

Copiar tablas de la red a maquina local
 
Buenas noches a todos, tengo una aplicacion que muestra informacion de una tablas DBF pero estas tablas las tengo que copiar primero a la maquina local y se encuentran localizadas en una maquina que es el servidor.
Me habia funcionado muy bien con un archivo BAT y haciendo un Mapeo pero me encontre con un cliente que tiene 25 empresas asi que no tengo las suficientes letras para hacer mapeo.
Se me ocurrio poner la ruta del servidor en el BAT algo como esto: COPY \\SERGIORIOS\Compacw\Empresas\SERGIO RIOS LLANES\MGW10005.dbf C:\pro-system,, pero los archvios BAT no pueden copiar cuando se tienen espacios en blanco en el nombre de los folder.

en fin lo que ocupo es que por codigo poder indicarle al programa que me copie las tablas que necesito antes de ejecutar la consulta de acuerdo a la empresa que seleccionen.
algo como esto:
Código Delphi [-]
  if TblAgentescidempresa.Value=2 then
   begin
    texto1:=COPY \\SERGIORIOS\Compacw\Empresas\SERGIO RIOS LLANES\MGW10005.dbf C:\pro-system  
    texto2:=COPY \\SERGIORIOS\Compacw\Empresas\SERGIO RIOS LLANES\MGW10008.dbf C:\pro-system 
    texto3:=COPY \\SERGIORIOS\Compacw\Empresas\SERGIO RIOS LLANES\MGW10010.dbf C:\pro-system
   ejecutar  
end

Utilizo Delphi 7
Gracias...

Neftali [Germán.Estévez] 11-10-2017 08:45:19

Cita:

Empezado por river_1 (Mensaje 521673)
pero los archvios BAT no pueden copiar cuando se tienen espacios en blanco en el nombre de los folder.

Para solventar eso, podrías probar:
  • A encerrar la ruta entre comillas dobles
  • Otra opción sería utilizar el "nombre" corto equivalente que tiene el sistema. Por ejemplo, aquí se ha hablado del tema.

fjcg02 11-10-2017 09:08:27

Cita:

Empezado por Neftali (Mensaje 521674)
...
A encerrar la ruta entre comillas dobles

Eso funciona, fijo.

Saludos

Casimiro Notevi 11-10-2017 11:02:03

Cita:

Empezado por fjcg02 (Mensaje 521676)
Eso funciona, fijo.
Saludos

+1 :D


.

river_1 13-10-2017 01:09:37

lo de las comillas lo entiendo , solo con que componente puedo ejecutar las instrucciones y que funcione.
Gracias..

Neftali [Germán.Estévez] 13-10-2017 08:13:59

Puedes ejecutar el .BAT directamente.

https://www.clubdelphi.com/foros/showthread.php?t=41204
http://www.clubdelphi.com/foros/showthread.php?t=76965
https://www.clubdelphi.com/foros/sho...47391&langid=1

ElDioni 13-10-2017 12:44:18

Hola,

también puedes utilizar el comando CopyFile.

Código Delphi [-]
CopyFile('RutaOrigen','RutaDestino'),true);

el valor boolean del final es para indicar, en caso de que el archivo ya exista en el destino, si quieres que lo sobrescriba o no.

Saludos.

river_1 13-10-2017 16:39:17

Copiar Achivos
 
Pues ya quedo , les comparto como quedo por si a alguien le sirve que para esto es este foro que me ha ayudado bastante.


Código Delphi [-]
procedure TForm1.RzBitBtn1Click(Sender: TObject);
function CopiaTodo(Origen,Destino : String) :
  LongInt;
  var 
    F : TShFileOpStruct;
    sOrigen, sDestino : String;
  begin 
    Result := 0;
    sOrigen := Origen + #0;
    sDestino := Destino + #0;
 
    with F do 
    begin 
      Wnd   := Application.Handle;
      wFunc := FO_COPY;
      pFrom := @sOrigen[1];
      pTo   := @sDestino[1];
      fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
    end;

    Result := ShFileOperation(F);
end;

begin
 if TblAgentescidempresa.Value=2 then
  begin
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10008.dbf','C:\pro-system');
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10008.fpt','C:\pro-system');
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10005.dbf','C:\pro-system');
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10005.fpt','C:\pro-system');
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10010.dbf','C:\pro-system');
    CopiaTodo('\\NOMINAT\Empresas\RUFI MARCH SC\MGW10010.fpt','C:\pro-system');
   end

y asi repito el codigo 25 veces ya que son 25 empresas en el menu..
un saludo a todos...


La franja horaria es GMT +2. Ahora son las 19:39:04.

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