Migración a Harbour con un error que no aparece en Clipper

HMG en Español

Moderator: Rathinagiri

Post Reply
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Migración a Harbour con un error que no aparece en Clipper

Post by citro »

Hola. Me presento de nuevo, me llamo Antonio, trabajo en una empresa de Buenos Aires, Argentina, manteniendo una aplicación desarrollada en Clipper 5.3b. En estos dias terminé de pasar la aplicación a Harbour, o sea compile con hbmk2 un archivo con extensión HBP, generó un
ejecutable, bastante mayor que lo que genera una compilación común con Clipper, pero que se ejecuta bien. El primer problema que tuve fue el siguiente:
La aplicación está corriendo en un servidor Windows 2003 Server con apróximadamente 15 terminales con XP. El ejecutable lo coloco en el rígido de cada equipo y luego designo el path de búsqueda de las tablas en la red. El tema es que la letra de la unidad de red varia en algunos equipos, por ej. en la mayoría es la letra T:, pero hay equipos que no tienen esta letra o bien la tienen asignada para otra aplicación, entonces al principio de la aplicación lo que hago es
buscar la letra de la unidad que corresponda de la siguiente manera:

aEjecu:={}
i :=65
cLetra:=chr(i)

do whil Empty( aEjecu )
aEjecu:=directory( cLetra +":MOVMER.*" )
if Empty( aEjecu )
i++
if i = 70
i++
end if
cLetra:=chr(i)
else
cLetra:=cLetra +":"
end if
end whil

SET DEFA TO (cLetra)

MOVMER es el nombre de una de las tablas. Estas lineas funcionan bien en Clipper pero cuando se ejecuta en la compilación con Harbour me aparece un cuadro de diálogo que me dice que No hay disco, en la barra de títulos y como mensaje:

"Exception Processing Message c0000013 Parameters 75b1bf7c..."

Esto pasa al intentar buscar el archivo en la letra "A:", o bien en alguna otra letra que no tiene información.
No se si hay alguna función en Harbour que permita detectar si una unidad existe o no. Gracias.
Antonio
Sistemas
Resipol
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Migración a Harbour con un error que no aparece en Clipp

Post by danielmaximiliano »

Hola Antonio:
Trabajo con una aplicacion clipper en la empresa, el mismo programa ya tiene unos 14 años, el mismo esta modificado ahora en HMG3.x en maquinas con Xp y W7.
por seguridad y por no saber cuantos disco o cd tiene cada maquina directamente asigne como Unidad "Z:" en cada maquina que corre como cliente de ese programa , solo en el servidor se ejecuta como unidad "C:" de esa forma te alivias de cualquier error posible.
nose si me "interpretas".
sin mas estoy a tu disposicion
DaNiElMaXiMiLiAnO
PD: para saber si es una maquina cliente el mismo en el raiz del disco "C:" cree un archivo de texto sin ningun contenido llamado "Cliente.txt" , en el server "Server.txt" y algunas maquinas portables donde se hace un backup para trasladar "Portable.txt" ahi vas a para las copias de respaldo diario.
esas portables al conectarse a la red y al cargar dicha aplicacion clipper se carga una tarea que recopila esa informacion diaria.
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Re: Migración a Harbour con un error que no aparece en Clipp

Post by citro »

Hola Daniel Maximiliano. Gracias por responder. Bueno acá la unidad que mencionas como "Z:", es en la mayoría de los equipos "T:", lo que me llamó la atención fue encontrar en uno de los equipos al que quise asignar esa letra, que la misma no existía, y como mis conocimientos de redes son casi nulos intenté hacer ese ciclo que puse como líneas de programa en el post original, para ver en que unidad estaban las tablas. Ahora lo que no se es si el faltante de esa letra en el equipo es algo que pueda resolver, o se lo tengo que comentar al administrador de la red, que es la persona que instaló la misma y que realiza el mantenimiento, para que la agregue en ese equipo. Gracias
Antonio
Sistemas
Resipol
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Migración a Harbour con un error que no aparece en Clipp

Post by danielmaximiliano »

Hola Antonio:
dependiendo del sistema operativo puede ser que el administrador o personal que instala el S.O
asigne el maximo de letras de unidades que puede ver el S.O
si es Xp puedes usar Wintools o TuneUp en ellos puedes tildar o destildar las unidades que estan ocultas al Explorador de Windows. tambien puedes usas "Gpedit.msc" desde Inicio/Ejecutar pero es mas dificil para algunos usuarios desde ahi se puede modificar cualquier cosa en Windows.
DaNiElMaXiMiLiAnO
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Migración a Harbour con un error que no aparece en Clipper

Post by Pablo César »

Es perfectamente possible asignar una unidad de red, basta maepar-la. Todas las versiones de Windows tiene la misma caracteristica. Pero ese es un asunto de gerenciamiento de red. Al margen si es posible o no asignar la misma unidad como nuestro colega Maximiliano indicó. Hay otra forma muy simples que yo acostumbro a emplear.

Todo programa tine un ícone (Shortcut) en el Windows en el DeskTop. Lo que puedes hacer es adicionar un parâmetro donde llama tu programa.
Image
En esta imagen puedes substituir el parametro 1 com la unidad correta de cada terminal. Ejemplo:

C:\SISTEMA\PROGRAMA.EXE T:

Claro que en tu primer módulo Main irás implementar unas lineas para que reciba este parametro en una variable que servirá en otros módulos, así:

Code: Select all

Function Main()
Parameters cUnit

If cUnit=NIL // verifica se existe el parametro y sale caso no sea especificado
   Mensaje("Falta parametro correspondiente a la unidad donde está el Banco de Datos.;
                Sintax: PROGRAMA.EXE T:")
   INKEY(0)
   QUIT
ENDIF
Esta seria una forma. Otra seria grabar en el REGISTRY de cada Windows en su instalacion y guardar esa informacion en alguna llave predeterminada.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Migración a Harbour con un error que no aparece en Clipp

Post by danielmaximiliano »

Hola de nuevo:
la Red pertenece a un Dominio???? es muy raro que las maquinas tienen como ultima letra de unidad la "T:" a menos que el Administrador haya desabilitado las unidades para ganar memoria en todas las maquinas o la mayoria de las mismas .
Saludos
DaNiElMaXiMILiAnO
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Re: Migración a Harbour con un error que no aparece en Clipp

Post by citro »

Hola. Perdón por la demora. El tema es que me manejo mucho con una cuenta que tengo en Yahoo y ahí me llega mucho correo de un foro de Argentina que es "Todoclipper". En todo este tiempo estuve probando con oohg, que es bastante similar a HMG, y la compilación la hago con un programa que se llama QAC, ahí defino las rutas de las librerías y después la compilación sale sin problemas. El tema es que para hacer una migración de un sistema tan grande lleva demasiado tiempo, no lo abandoné, pero si busqué algo que no tuviera tanta tardanza y que mostrara que hay una diferencia de velocidad con respecto a la aplicación que usan en la empresa, así que estos 2 últimos meses estuve usando xedit con xailer, y si bien es cierto que no todo funciona tal como funcionaba en Clipper, la aplicación así compilada funciona bastante rápido.
Ahora bien probé lo que me respondiste en este post y funcionó perfectamente, dependiendo de la letra que le ponga en el acceso directo utiliza la misma. Gracias y nuevamente perdón por la demora en contestar.
Pablo César wrote:Es perfectamente possible asignar una unidad de red, basta maepar-la. Todas las versiones de Windows tiene la misma caracteristica. Pero ese es un asunto de gerenciamiento de red. Al margen si es posible o no asignar la misma unidad como nuestro colega Maximiliano indicó. Hay otra forma muy simples que yo acostumbro a emplear.

Todo programa tine un ícone (Shortcut) en el Windows en el DeskTop. Lo que puedes hacer es adicionar un parâmetro donde llama tu programa.
Image
En esta imagen puedes substituir el parametro 1 com la unidad correta de cada terminal. Ejemplo:

C:\SISTEMA\PROGRAMA.EXE T:

Claro que en tu primer módulo Main irás implementar unas lineas para que reciba este parametro en una variable que servirá en otros módulos, así:

Code: Select all

Function Main()
Parameters cUnit

If cUnit=NIL // verifica se existe el parametro y sale caso no sea especificado
   Mensaje("Falta parametro correspondiente a la unidad donde está el Banco de Datos.;
                Sintax: PROGRAMA.EXE T:")
   INKEY(0)
   QUIT
ENDIF
Esta seria una forma. Otra seria grabar en el REGISTRY de cada Windows en su instalacion y guardar esa informacion en alguna llave predeterminada.
Antonio
Sistemas
Resipol
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Re: Migración a Harbour con un error que no aparece en Clipp

Post by citro »

Hola Daniel. Hace un rato le escribí al otro forista que me habia dado una respuesta que resultó muy efectiva. En ese post le explique las pruebas que estuve haciendo con otras aplicaciones similares a HMG..., etc., etc.
Respecto a tu pregunta, si, todos los usuarios trabajan dentro de un mismo dominio, y en el equipo que tiene la letra diferente al del resto de las otras máquinas, en realidad es una letra que está asignada a una unidad extraible, no me habiá dado cuenta de ese detalle. Ahora lo de la designación de las letras, en principio si las hizo el administrador de la red, es más la letra Z:
está asignada a un lugar que le llamamos "uso común" ya que tienen acceso todos los usuarios de la empresa, y en la misma hay archivos de todo tipo con información variada.
Actualmente estoy usando xharbour desde xedit con xailer, y habia entrado en el foro de HMG, porque trataba de ver como puedo hacer para que en xharbour me reconozca la tecla "Alt-gr". En Clipper no tengo problemas, pero en xharbour no la reconoce. Bueno Saludos
danielmaximiliano wrote:Hola de nuevo:
la Red pertenece a un Dominio???? es muy raro que las maquinas tienen como ultima letra de unidad la "T:" a menos que el Administrador haya desabilitado las unidades para ganar memoria en todas las maquinas o la mayoria de las mismas .
Saludos
DaNiElMaXiMILiAnO
Antonio
Sistemas
Resipol
Post Reply