martes, 23 de octubre de 2007

/collating sequence "spanish" not found y otras yerbas



Es un mensaje de error de FoxPro, concretamente FoxPro para una aplicación DOS que debo modificar (gajes del orificio: trabajar en ORT). Siento que debo pasar un elefante por un dedal. Modificar una aplicación monousuario, con esacasísima documentación, a modalidad multiusuario, hecha en FoxPro para DOS. Herramienta que no se basa en el concepto de base de datos, sino de tablas (reitero, me refiero a su versión para DOS), y tampoco está pensado para encarar proyectos en capas, ni para una performance como cliente-servidor.

Tenía dos alternativas:

  1. Cada terminal con su ejecutable y las tablas en una de las máquinas, a compartir
  2. Que cada máquina comparta ejecutable y tablas
Opté por la primera. Compartir un ejecutable con máquinas de escasos recursos de RAM me pareció complicado. El sistema como monousuario era estable, pero algo lento, culpa de las máquinas, tienen índices grandes y 256MB RAM. Difícilmente logre una configuración mucho mejor.

Esa opción tiene algunas contras, la mas evidente es asegurarme que sea siempre el mismo ejecutable para ambas máquinas. Y agregar en cada terminal el Config.Fp correspondiente (apuntando a donde están las tablas). Eso comparado con la sincronización del acceso y modificación de los datos, es un detalle (bastante) menor.

De haber compartido el ejecutable, "sólo" debería programar la programación concurrente y crear un acceso directo al .exe en cada terminal. Pero la limitante de los recursos por máquina, incluso de la que es servidor, me llevó por esa elección.
Es cierto, que una vez cargado el ejecutable, no debería haber problemas, pero bueno, de esta manera me aseguro algo mas performante.

Se aceptan críticas, sugerencias, tomates (ahora está caro, no viene mal)

Elección 2, hacer que las consultas sean todos cursores SQL, asi me ahorro el tema de tablas locales o acceder a tablas del sistema.

Nota: los config.fp guardan datos de configuración del entorno del sistema, como el sistema alfabético, el tipo de fecha, si son tablas compartidas, etc.


Paso 1: probar los config.fp de la máquina cliente. Principalmente, que las variables set default y set path apunten al servid
or.

Paso 2: ejecutar el .exe copiado.

Mensaje de error:



Luego de probar las combinaciones del Collate y Codepage hasta el hartazgo, google me dio la respuesta, faltaba el archivo FoxPro.Int donde va el ejecutable.
Agregado el mismo, adios problema.

Nota: FoxPro.int es el archivo de soporte para la página de códigos Internacional.

Es la primera vez que no me arrepiento de no tener experiencia en algo, que lenguaje mas horrendo.









No hay comentarios.: