Para ejecutar MultiBase en modo cliente-servidor deberá tener instalado previamente el paquete denominado «PC/TCP network software for DOS», de la compañía FTP, y comprobar la existencia de la libre ía dinámica «WINSOCK.DLL» («Windows Sockets API Implementation DLL»). Dicha librería deberá reemplazar a la del mismo nombre incluida en su copia de MultiBase («TRANSDIR\bin\WINSOCK.DLL»).
A continuación, actualizar (o crear, si no existiera) el fichero «C:\etc\services» con la siguiente línea:
ctsql nnn/tcp ctsql
Siendo «nnn» un número único dentro del fichero, y que deberá coincidir con el que se haya utilizado en el fichero «/etc/services» del servidor UNIX.
Definir las siguientes variables de entorno:
DBHOST: Nombre del servidor UNIX.
DBUSER: Nombre del usuario del servidor del que se tomarán los permisos para acceder a la base de datos. Si no se define se asume «system».
DBPASSWD: «Password» del usuario UNIX al que se desea conectar. Ver notas técnicas a la versión 2.0 05.
XDBTEMP: Directorio en el servidor UNIX para la creación de ficheros temporales. Por defecto se asumirá «/tmp».
DBPATH: Directorio(s) en el servidor para la localización de la base de datos.
Ejemplo de configuración en un «cliente» Windows:
SET DBTEMP=C:\TMP
SET TRANSDIR=C:\CTL
PATH=C:\CTL\BIN;C:\DOS;C:\Windows...
SET TERM=VGAC
SET DBHOST=master
SET DBUSER=pedro
SET DBPASSWD=NOPASSWD
SET DBPATH=/usr/almacen
SET XDBTEMP=/tmp
Ejemplo de configuración en un «cliente» UNIX:
DBTEMP=/tmp
TRANSDIR=/usr/ctl
PATH=/usr/ctl/bin:.:/bin...
TERM=AT386
DBHOST=master
DBUSER=pedro
DBPASSWD=NOPASSWD
DBPATH=/usr/almacen
XDBTEMP=/tmp
Para invocar al CTSQL cuando es requerido por algún nodo de la red se utiliza el comando de UNIX «inetd». Este comando utiliza el fichero de configuración «INETD.CONF», que suele estar localizado e el directorio «/etc». Habrá que editarlo y añadir la siguiente línea (una sola):
ctsql stream tcp nowait root $TRANSDIR/lib/ctsql
ctsql system 1.0 4.0 NET
(sustituyendo «$TRANSDIR» por el directorio donde esté instalado MultiBase).
Editar el fichero «/etc/services» y añadir la siguiente línea:
ctsql nnn/tcp ctsql
Siendo «nnn» un número único dentro del fichero que deberá coincidir con el que se haya utilizado en el fichero «services» de la maquina «cliente».
Todos los comandos de MultiBase en Windows comprueban la existencia de un fichero de definición de variables de entorno, de nombre «MBENV», en el directorio «$TRANSDIR\etc». En caso de existir se añadirán al entorno las variables que aparezcan en él y que no estuvieran ya definidas, es decir, respeta el entorno previo a la ejecución del programa.
También se podrá utilizar el parámetro «-ef» para indicar el fichero concreto que debe utilizarse. Si se usa este parámetro se añadirán todas las variables que vengan definidas, pero en este caso se modificará el valor de las que ya lo estuvieran de antemano. Si en el nombre de este fichero no aparece el «path» completo se buscará en el directorio «$TRANSDIR\etc».
NOTA: La asignación de variables de entorno en estos ficheros no requiere la cláusula «SET» como en MS-DOS.
Ejemplos:
a) Utilizando el fichero por defecto:
Contenido del fichero «$TRANSDIR\etc\mbenv»:
DBPATH=c:\mbdemo
DBPROC=c:\mbdemo
RPRINTER=printer1
DBTEMP=C:\TMP
DBMONEY="Ptas,"
Entorno definido antes de ejecutar Windows:
TRANSDIR=c:\ctl
DBPATH=c:\ctl\ep;c:\almacen
DBPROC=c:\ctl\ep;c:\almacen
Al ejecutar un comando MultiBase desde Windows el entorno quedará:
TRANSDIR=c:\ctl
DBPATH=c:\ctl\ep;c:\almacen
DBPROC=c:\ctl\ep;c:\almacen
RPRINTER=printer1
DBTEMP=c:\tmp
DBMONEY="Ptas,"
b) Utilizando el parámetro «-ef fichero» (suponiendo que «fichero» equivale a «C:\environ\contaenv»):
Contenido del fichero «C:\environ\contaenv»:
DBHOST=server
DBUSER=adm
DBPASSWD=NOPASSWD
DBPATH=/usr/conta
DBPROC=c:\conta
DBTEMP=c:\tmp
DBMONEY="Ptas,"
Entorno definido antes de ejecutar Windows:
TRANSDIR=c:\ctl
DBPATH=c:\ctl\ep;c:\almacen
DBPROC=c:\ctl\ep;c:\almacen
Al ejecutar un comando MultiBase desde Windows con el parámetro «-ef»:
ctl -ef c:\environ\contaenv menuconta
el entorno quedará:
TRANSDIR=c:\ctl
DBHOST=server
DBUSER=adm
DBPASSWD=NOPASSWD
DBPATH=/usr/conta
DBPROC=c:\conta
DBTEMP=c:\tmp
DBMONEY="Ptas,"
NOTA: El parámetro «-ef» debe ser el primero de todos los del comando.