FoxPro/Visual FoxPro - Backup con comando run , como evitar pantalla dos ?

 
Vista:
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 13/02/2019 14:06:39
Hola estimados, la única forma que me funciona el backup correctamante es con el comando run. ( con otras rutinas no me toma bien el índice de los dbf al restablecer).-

La pregunta es la siguiente: como evito la pantalla de dos?.-

Mi rutina es la siguiente:

RUTA="C:\Backupsist"

RUN COPY *.DBF &RUTA
RUN COPY *.CDX &RUTA
RUN COPY *.FPT &RUTA

COPIA BIEN EL BACKUP PERO CON PANTALLA NEGRA DE DOS
*******************************************************************************
He probado con otras alternativas segun la ayuda de foxpro 9:
****ESTE FUNCIONA PERO NO COPIA: RUN ![/N COPY *.DBF &RUTA]
****ASI DA ERROR: RUN [/N COPY *.DBF &RUTA]
*** ESTE FUNCIONA PERO NO COPIA: RUN !/N COPY *.DBF &RUTA
***FUNCIONA PERO NO COPIA: RUN ![COPY *.DBF &RUTA]
**FUNCIONA PERO NO COPIA: RUN !/N COPY *.DBF &RUTA
*FUNCIONA PERO NO COPIA:RUN !COPY *.DBF &RUTA

AGUARDO RESPUESTA
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Leonardo Daniel A. (497 intervenciones) el 13/02/2019 18:06:14
No se puede ocultar la pantalla del simbolo del sistema.... tendrias que hacer algun programa en C++, Delphi, etc. que se encargue de copiar los archivos y ejecutarlo desde Vfox.....

la otra es usar el API de windows, la funcion SHFileOperation no te puedo decir como hacerlo en Vfox. hace años que lo deje... eso lo tengo con PowerBuilder 12.6

busca en la WEB Visual FoxPro SHFileOperation



Otra opcion es que hagas un COPY TO Archivo WITH PRODUCTION y te copia el DBF, CDX y Campo memos si los usas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 13/02/2019 19:29:26
Hola si, ya lo estuve probando con
1
2
3
WshShell =  CreateObject("WScript.Shell")
WshShell.Run("tuarchivo.bat",0)
WshShell = null

pero me da errores.

......
Si, ya lo hice con copy to:
te muestro:
USE clientes.dbf
COPY TO C:\BACKUPSIST\clientes.dbf
COPY TO C:\BACKUPSIST\clientes.cdx

USE iva.dbf
COPY TO C:\BACKUPSIST\iva.dbf
COPY TO C:\BACKUPSIST\iva.cdx

USE marca.dbf
COPY TO C:\BACKUPSIST\marca.dbf
COPY TO C:\BACKUPSIST\marca.cdx

USE articulosm.dbf
COPY TO C:\BACKUPSIST\articulosm.dbf
COPY TO C:\BACKUPSIST\articulosm.cdx

USE orden.dbf
COPY TO C:\BACKUPSIST\orden.dbf
COPY TO C:\BACKUPSIST\orden.cdx

USE presupuesto.dbf
COPY TO C:\BACKUPSIST\presupuesto.dbf
COPY TO C:\BACKUPSIST\presupuesto.cdx

Y todas las demás ......

COPIA BIEN EL BACKUP PERO CUANDO VUELVO A COPIAR DEL BACKUP AL SISTEMA ,, ME DA EL SIGUENTE ERROR:
QUE NO SE ENCUENTRA EL ARCHIVO ÍNDICE..O ALGO ASI,.
POR ESO DECIDÍ HACERLO CON RUN.



ME FALTA PROBAR ESCRIBIENDO... WITH PRODUCTION


PERO PORQUE NO FUNCIONAN LOS ÍNDICES?? Y SI FUNCIONA HACIENDO BACKUP CON EL RUN.
AGUARDO RESPUESTA
MUCHAS GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 13/02/2019 19:41:17
Leonardo , me podrías pasar buen la rutina con with production ?
Desde ya gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Leonardo Daniel A. (497 intervenciones) el 13/02/2019 19:44:02
Hola pues es igual.... solo se le agrega al final del copy to


1
2
USE presupuesto
COPY TO C:\BACKUPSIST\presupuesto WITH PRODUCTION


y te recomendaria hacer mejor una copia general de todos los DBFs y no hacerlo uno por uno... con la funcion ADIR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CLOSE TABLE ALL
SET DEFAULT TO C:\MiAplicacion
 
gnDbcnumber = ADIR(gaDatabase, '*.DBF')  && Create array
 
CLEAR
FOR nCount = 1 TO gnDbcnumber  && recorrer todos los archivos
   _archivo =  gaDatabase(nCount,1)  && obtener nombre del dbf
 
   _archivo = SUBSTR(_archivo,1,AT('.', _archivo)-1)   && Quitar la extencion
 
   _destino = "C:\BACKUPSIST\" + _archivo
 
   use &_archivo
   COPY TO &_destino WITH PRODUCTION
   use
ENDFOR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 13/02/2019 20:33:43
Bueno gracias, ni bien pueda estar en la PC lo pruebo y te cuento como me fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 14/02/2019 01:13:03
Hola Leonardo , el backup funciona muy bien de inmediato luego de compilar , pero al ingresar nuevamante y salir , me da "archivo o tabla en uso" y me hace el backup sólo de algunas tablas.-

Para poder operar y no me de error de backup al salir utilicé el TRY /ENDTRY

TRY

.
*aqui instrucción de backup


Catch To oError
Wait Window "Tabla en uso"+Chr(13)+oError.Message Timeout 0.5
ENDTRY

QUE PUEDO HACER PARA QUE NO ME DE "TABLA EN USO" Y PODER HACER EL BACKUP COMPLETO? (CLOSE TABLE ALL YA ESTÁ PUESTO.-
AGUARDO RESPUESTA , DESDE YA GRACIAS!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Leonardo Daniel A. (497 intervenciones) el 14/02/2019 07:08:53
Hola. apenas que pongas todo tu codigo para ver que es lo que hace ..... me parece extraño que marque eso.. ya que la rutina abre el DBF lo copia y luego la cierra...... es mono usuario el sistema ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Backup con comando run , como evitar pantalla dos ?

Publicado por Juanqui (31 intervenciones) el 19/02/2019 21:49:14
USE orden.dbf
COPY TO C:\BACKUPSIST\orden with cdx


USE presupuesto.dbf
COPY TO C:\BACKUPSIST\presupuesto with cdx


prueba asi y tus indices no estaran dañados cuando vuelvan :)

slds

Juanqui
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por alexcoinc (40 intervenciones) el 14/02/2019 14:30:44
Hola Jose Francisco

PRIMERO LO PRIMERO:

Vuelve el mismo "problemilla" con El Sr. Leonardo Daniel, el cual opina sin la certeza de que lo que dice es cierto o no......Luego cuando alguien sale con la rspuesta mas acertada...pues el Sr mencionado...solo acata en decir... "...AHHH ES QUE HACE MUCHO TIEMPO DEJE EL VFP......YA NO LO USO...UTILZO OTRAS HERRAMIENTAS MAS AVANZADAS....".....Pregunta: Si ya no lo usas hace tiempo...pues hombre, no deberias estar en este foro; o simplemente si quieres estar, entonces opina, guia, soluiciona, comenta pero cosas ciertas, porque la mayoria de personas que consultamos aqui, creemos (ese es mi caso) que los que responden aqui realmente saben...y si no saben, pues uno aspira que le digan.."pues esta es mi opinion"....pero nunca decir de primerazo...NO SE PUEDE !!; pues como varias veces le ha pasado al Sr Leonardo lo dejan como un "cuero"...

Es un comentario con todo cariño y amiastad. !!

Ahora si lo importante, referente a la inquietud del Sr Jose Francisco:

ESTA ES UNA FUNCION....ensayala:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
*-------------------------------------
* EJECUTA UN COMANDO EXTERNO Y NO MUESTRA EL CUADRO NEGRO
FUNCTION run
PARAMETER doscmd
DECLARE INTEGER WinExec IN win32api AS run STRING command, INTEGER param
DO CASE
   CASE file("c:\windows\system32\cmd.exe")
        cmdstart= "c:\windows\system32\cmd.exe /c"
   CASE file("d:\windows\system32\cmd.exe")
        cmdstart= "d:\windows\system32\cmd.exe /c"
   CASE file("e:\windows\system32\cmd.exe")
        cmdstart= "e:\windows\system32\cmd.exe /c"
ENDCASE
fullcmd = cmdstart + doscmd
retval = run(fullcmd,0)    && SI SE CAMBIA ESTE 0 POR UN 1 MUESTRA LA EJECUCIÓN
RETURN retval
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Leonardo Daniel A. (497 intervenciones) el 14/02/2019 15:14:36
Primero el dije que no se podia hacer eso con el comando RUN

Segundo le dije que deberia usar la API de Windows y le dije que buscara

Tercero le puse codigo de como respaldar todas sus tablas sin hacerlas una por una
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 14/02/2019 16:01:38
Bien Leonardo , sólo faltará algún paso , voy a verificar mi prg .-

Con respecto a otros comentarios por terceros por favor NO PROBLEM.-(NO SE PERMITEN EN EL FORO)

Muchas gracias.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 14/02/2019 16:28:12
Leonardo , ya sé que puede estar pasando , estoy haciendo un backup al salir,, y ahí puede estar el problema , ni buen pueda lo continúo , gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 309
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por SANTIAGO JUAN (551 intervenciones) el 14/02/2019 22:53:10
tus comandos RUN están bien (contrario a lo que te dijeron NO SE PUEDE, pues SI SE PUEDE), solo mételos en un archivo bat (mirun.bat) y ejecútalo con RUN, la pantalla DOS no se verá.

RUN /N7 mirun.bat

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Jose Francisco (166 intervenciones) el 15/02/2019 00:15:38
Ok santiago lo voy a probar.-
Ya que estamos con los archivos bat te consulto si sabes como se corre un bat con run pero como administrador .-
Desde ya gracias.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup con comando run , como evitar pantalla dos ?

Publicado por Leonardo Daniel A. (497 intervenciones) el 15/02/2019 18:18:50
Hola de nuevo... creo que no deberias de hacerlo con un copy directo porque asi no puedes controlar los errores... creo que seria mejor con un Try .. Catch y un copy to tabla with production... con la rutina que te pase.. de hecho podrias agregar una variable que se llame _tablasError

y en el catch del error

1
2
3
4
5
IF EMPTY(_tablasError )
   _tablasError = "* " + _archivo
ELSE
   _tablasError = _tablasError  + char(13) + "* " + _archivo
ENDIF

y al final del proceso para avisar al usuario que tablas no se pudieron reespaldar
1
2
3
IF !EMPTY(_tablasError )
    Wait window _tablasError     && o un msgbox si lo prefieres
ENDIF

o incluso cuando no quieres reespaldar todas las tablas... yo tengo una tabla con la lista de tablas a reespaldar y hago un SCAN....ENDSCAN recorriendo esa tabla y obteniendo el nombre de la tabla a respaldar, la abro y la copio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Backup con comando run , como evitar pantalla dos ?

Publicado por j (2 intervenciones) el 22/02/2019 22:03:49
No le hagas caso a ese farsante gordo, no uses la rutina run, si mal no recuerdo existen alternativas para ello: yo usaria la de abrir cada tabla, luego seleccionarla y despues hacer un append from, es decir:

SELECT TABLA (la que quieres respaldar)
COPY STRUCT TO "C:\Directorio\" + "(donde la vas a copiar).DBF" WITH CDX **** las comillas se escriben ya que las estas usando como cadena de caracteres

SELECT (donde la vas a copiar)
APPEND FROM (LA QUE QUIERES RESPALDAR)

Sin son muchas puedes crear una tabla a la cual llamaras respaldo o como quieras, a la que crearas UN campo tipo texto (dbf) con la longiut que quieras, despues te creas un programa en donde la abriras y con un ciclo DO WHILE .not. EOF() le asignaras UNA variable de memoria y con la rutina que te di resuelves el problema, algo como esto:

SELECT RESPALDO
GO TOP
DO WHILE .NOT. EOF()
STORE ALLTRIM(DBF) TO DBF_M, DBF_M1 **** MISMO NOMBRE PARA AMBAS VARMEMO

SELECT DBF_M
COPY STRUCT TO "C:\Directorio\" + "DBF_M1.DBF" WITH CDX **** las comillas se escriben ya que las estas usando como cadena de caracteres

SELECT (DBF_M1)
APPEND FROM DBF_M

SELECT RESPALDO
SKIP
ENDDO

***** ME DEBES $300 DOLARES JAJAJAJA, la fpt se crea sola si mal no recuerdo creo que se debe a que tu tabla tiene un campo MEMO, saludos desde Venezuela, ti tienes mas inconvenientes este es mi correo [email protected] *************
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar