Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-08-2011
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Smile Copiar archivo a un servidor CopyFile

Hola buenas noches amigos.

Tengo un problema que trato de solucionar. Les explico.

Desarrollé una aplicacion hecha en Delphi6 con FireBird 1.5. Estoy tratando de hace lo siguiente:

Copiar un archivo PDF desde una máquina cliente hacia el servidor de la base de datos. Estos equipos estan conectados a una RED LAN usando WinXP. Ambos equipos usan este sistema operativo.

Lo que he hecho:

He consultado estos hilos
http://www.clubdelphi.com/foros/showthread.php?t=72767&highlight=copiar+archivos+a+un+servidor
http://www.clubdelphi.com/foros/showthread.php?t=74419
http://www.forosdelweb.com/f15/ayuda-con-copyfile-grupo-servidores-99956/
http://social.msdn.microsoft.com/Forums/es/vbes/thread/eb5de29d-c003-46c8-8bc0-15d2c7dddad6


Que habla del caso, el cual lo aplique asi:

Código Delphi [-]
                    CopyFile( PChar(cArchivoAsociado),Pchar('\\192.168.1.70\c\FORMATOS\'+dsVentas.FieldByName('LECHER').AsString+'  _'+dsVentas.FieldByName('DIA').AsString+dsVentas.FieldByName('MES').AsString+dsVentas.FieldByName('A  NIO').AsString+ExtractFileExt(oDlgFile.FileName) ),FALSE);
                    cArchivoAsociado:='\\192.168.1.70\c\FORMATOS\'+dsVentas.FieldByName('LECHER').AsString+'_'+dsVentas.  FieldByName('DIA').AsString+dsVentas.FieldByName('MES').AsString+dsVentas.FieldByName('ANIO').AsStri  ng+ExtractFileExt(oDlgFile.FileName);

Donde cArchivoAsociado contiene la ruta origen con todo y el nombre del archivo a copiar "c:\DOC090811.PDF" que también puede estar una unidad USB.

He visto comentarios que hablan acerca de almacenar imagenes en la base de datos, pero comentan que esto hace crecer a la base y que ademas puede hacerla lenta.

La verdad esta no seria opción, ya que se tienen que registrar diariamente cerca de 200 formatos, es decir scanearlos y guardarlos....sinceramente esta opción no PUEDE SER OPCION...

Entonces opte por copiarlos algun directorio, que por cierto lo tengo compartido (C:\FORMATOS) pero no he logrado copiarlo agregandole la IP del servidor....pero si realiza la copia del archivo si le quito la IP, pero esa no es la idea.

Lo anterior obedece que el usuario al momento de registrar los datos de los formatos el requiere que ese formato este disponible para aclaraciones posteriores y no buscarlo en el "archivo muerto" ya que seria muy tardado la localización del documento.

La RUTA FINAL la guardo en la base de datos, luego cuando se consulta el registro tomo la ruta para localizar el archivo y mostrarlo....pero este no es el problema, el problema es que no se copia el archivo.

Espero me puedan ayudar como lo debo de hacer exactamente.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 10-08-2011 a las 06:32:38.
Responder Con Cita
  #2  
Antiguo 10-08-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
Hola.

Si el problema es que no te copia el fichero igual lo que te pasa es que no le estás poniendo un path+nombre de archivo de destino correcto. Yo lo que haría es hacer una prueba poniendo:

Código:
CopyFile(PChar(cArchivoAsociado),Pchar('\\192.168.1.70\c\TEMP\PRUEBA.PDF',FALSE);
Cuando veas que esto funciona correctamente (que es lo que imagino) revisa la cadena donde tienes puesto la ruta y nombre de destino que posiblemente habrá algo que esté dando problemas. Yo optaría por no poner espacios en el nombre.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 10-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cita:
no he logrado copiarlo agregandole la IP del servidor....pero si realiza la copia del archivo si le quito la IP
Esto quiere decir que:
SIN la dirección IP, lo estás copiando en el mismo ordenador
CON la dirección IP, trata de copiarlo y no puede.

¿Cuál es el mensaje de error?
¿Puedes acceder a ese ordenador servidor desde el cliente? (\\192.168.1.70\)
¿Puedes copiarlo utilizando el explorador de windows? (abrir dos ventanas C:\ORIGEN y \\192.168.1.70\C\TEMP\, y luego arrastrar y copiar)
Responder Con Cita
  #4  
Antiguo 10-08-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Quizás te interese esto.

Saludos.
Responder Con Cita
  #5  
Antiguo 10-08-2011
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Gracias escafandra.....la verdad si esta interesante y talvez sin tanto problema....
A TODOS GRACIAS POR AYUDARME....

Les comento que ya esta funcionando, la verdad desconozco como es que pasó, pero considero que en el momento que estaba haciendo la prueba estaba en mi laptop conectado a internet de manera inalambrica y la IP que les puse en mi código era precisamente la IP de la red inalambrica....

Lo que hice fué conectar en RED otra laptop (LAN) y les asigne IP`s a ambas para esta RED y funciono !.....

Para lo anterior solo faltó asignarle derechos a la carpeta compartida del servidor, dando click derecho y en propiedades dentro de la pestaña de "Compartir", seleccioné la casilla que dice "Permitir que los usuarios de la red cambien mis archivos". Anteriormente no le habia seleccionado esto y pues no copiaba nada.

Acerca del error que mandaba, despues de postear, sigue consultando mas hilos en "San Google" y me encontre con una instruccion GetLastError, el cual lo capture y me dio un número, el 52, lo consulte en una tabla de errores del CopyFile y decia, obviamente en inglés, algo de que habia un nombre duplicado en la RED o algo asi y que no podia copiar... asi que fue entonces donde conecte la otra laptop a mi laptop para crear una RED LAN....y ahi fué donde ya funciono.

En estos momento ya tengo un EJECUTABLE en producción corriendo en los equipos de la oficina y funciona correctamente. Desde cualquier maquina cliente se pueden cargar los archivos y el sistema los copia a una carpeta compartida en el servidor.....

El problema fué de direcciones IP, ademas de compartir la carpeta, configurarla para que los usuarios de la red permitan realizar cambios a mis archivos de esa carpeta.

Les agradezco mucho su interes y su tiempo para con mi problema, pero al parecer ya esta resuelto.

El problema
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 10-08-2011
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Asi es duilioisola con la direcciòn IP no copiaba nada....pero se la quitaba y efectivamente copiaba los archivos a mi disco duro.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #7  
Antiguo 10-08-2011
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
El codigo final de la solucion....

este es el còdigo final para cualquier otro amigo forero que este en las mismas circuntancias.

Código Delphi [-]
 if cArchivoAsociado<>'' then
                begin
//                    CopyFile(PChar(cArchivoAsociado),Pchar('c:\FORMATOS\'+ExtractFileName(oDlgFile.FileName)),false);
                    if CopyFile( PChar(cArchivoAsociado),Pchar('\\'+ipServer+'\FORMATOS'+'\'+dsVentas.FieldByName('LECHER').AsString+  '_'+dsVentas.FieldByName('DIA').AsString+dsVentas.FieldByName('MES').AsString+dsVentas.FieldByName('  ANIO').AsString+ExtractFileExt(oDlgFile.FileName) ),FALSE) then
                    begin
                            cArchivoAsociado:='\\'+ipServer+'\FORMATOS'+'\'+dsVentas.FieldByName('LECHER').AsString+'_'+dsVentas  .FieldByName('DIA').AsString+dsVentas.FieldByName('MES').AsString+dsVentas.FieldByName('ANIO').AsStr  ing+ExtractFileExt(oDlgFile.FileName);
                            ShowMessage('El archivo se copió correctamente')
                    end else begin
                           ShowMessage(Variant(GetLastError));
                    end;

                end;
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #8  
Antiguo 24-04-2013
Lilauth Lilauth is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Lilauth Va por buen camino
Gracias Miguel Román por colgar el código final. Me caba de resolver medio problema
Responder Con Cita
  #9  
Antiguo 25-04-2013
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
De nada...

Cita:
Empezado por Lilauth Ver Mensaje
Gracias Miguel Román por colgar el código final. Me caba de resolver medio problema
Que tal Lilauth....no tienes porque....para eso estamos en este foro. No dejes de consultar y de postear de vez en cuando con soluciones para los demas.

Que estes bien....

Bye.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
no realiza CopyFile en red de un archivo ingabraham Varios 9 31-05-2011 19:31:48
copiar un archivo de red ingabraham Varios 7 14-03-2011 23:45:30
Ej. Copiar Archivo shulygart Varios 4 16-11-2005 02:36:41
Ayuda por favor con COPYFILE o bien ¿como puedo copiar archivos? Phacko API de Windows 1 28-07-2004 20:58:00
Copiar Base de Datos en Servidor Web raul_sal MySQL 1 16-04-2004 01:34:10


La franja horaria es GMT +2. Ahora son las 03:11:56.


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
Copyright 1996-2007 Club Delphi