martes, febrero 13, 2007

 

BAT para crear y levantar base de datos SQL Anywhere 10

Estimados alumnos,

En respuesta a sus inquietudes expuestas esta mañana, lean la siguiente
información:

El dbinit como el dbeng10 son utilitarios que NO se pueden ejecutar desde
el Interactive SQL porque NO SE TRATAN de setencias SQL (que pueden ser
leídas por un editor de SQL. El Interactive SQL es un editor de SQL).
Además, el dbisql es también un utilitario.

Lo anterior implica que ustedes podrían perfectamente desde un BAT:
Crear el servidor de datos y levantar el mismo. En otro BAT (con el
servidor de datos ya cargado), ejecutar un segundo BAT que contenga el
llamado al utilitario dbisql para la creación de la metadata.

Por ejemplo, el primer archivo BAT podría contener líneas como estas:

"%SQLANY10%\win32\dbinit.exe" -p 4096 proyecto.db
"%SQLANY10%\win32\dbeng10.exe" proyecto.db -o proyecto.txt

la primera línea crea la base de datos proyecto con un tamaño de página
de datos de 4K y la segunda línea arranca el servidor recién creado.

El segundo archivo BAT tendría esta línea:

"%SQLANY10%\win32\dbisql.exe" -c "eng=proyecto;uid=DBA;pwd=SQL" -onerror
exit mycom.sql

En la misma, se hace un llamado al utilitario dbisql que se conecta a la
base de datos recién creada y desde donde se ejecutan sentencias SQL
contenidas en el archivo mycom.sql.

Otro dato importante, es que en Anywhere el servidor y la base de datos
son la misma cosa. O sea, cuando ustedes crean un servidor de datos y lo
levantan (con dbeng10), están creando y levantando una base de datos con
el mismo nombre también. Existe una forma con el dbeng10 en donde pueden
cambiarle el nombre al servidor de datos para que ustedes puedan de esta
forma en un mismo computador levantar múltiples bases de datos.

El flag que se deberá usar para este fin es el: -n

"%SQLANY10%\win32\dbeng10.exe" -n pruebaconsol
E:\Tutorial\Consol\pruebaconsol.db

"%SQLANY10%\win32\dbeng10.exe" -n pruebablvd
E:\Tutorial\Blvd\pruebablvd.db

Con las sentencias anteriores, se levantan dos bases de datos distintas
en una misma computadora.

IMPORTANTE

Si ustedes quieren incluir en un solo archivo BAT la creación del
servidor de datos, la carga del mismo y la creación de las tablas.
Deberán usar otro utilitario llamado dbspawn antes de llamar al dbeng10.


En las siguientes líneas se muestra el contenido de este archivo BAT.


"%SQLANY10%\win32\dbinit.exe" -p 4096 proyecto.db
"%SQLANY10%\win32\dbspawn.exe" "%SQLANY10%\win32\dbeng10.exe" proyecto.db -o
proyecto.txt
"%SQLANY10%\win32\dbisql.exe" -c "eng=proyecto;uid=DBA;pwd=SQL" -onerror
exit mydb.sql

Ahora bien, ¿ qué es el DBSPAWN y para qué sirve ? ... esta es la
explicación en inglés:

"The dbspawn utility is provided to start a server in the background.
dbspawn starts the server in the background and returns with an exit
code of 0 (success) or non-zero (failure). If the server specified in
server-command is already running, dbspawn reports failure.

The dbspawn utility is useful for starting a server from a batch file,
especially when subsequent commands in the batch file require a server
that is accepting requests."

En su caso ... el comando siguiente en el archivo BAT es el dbisql.

Esperando que les haya quedado más claro.

Se despide, atentamente,


Ing. Lamelas

This page is powered by Blogger. Isn't yours?