PDA

Ver la Versión Completa : Acceder otra base de datos en Procedimiento Almacenado Firebird


mario_2000
04-09-2006, 23:25:55
Saludos a todos los amigos de Club Delphi.

Tengo dos sistemas, un capturador de llamadas de central telefonica y un sistema de hotel. Ambas bases de datos estan en Firebird.

Mi idea es que cuando se hace una llamada de una habitacion, se tarifique y se haga un "cargo" al huesped por el costo de la llamada + el Imp. Venta.

En la base de datos de la Central, tengo un procedimiento almacenado que hace la tarificacion. Ahora, me gustaria agregar en el mismo procedimiento el codigo para que inserte los costos en la tabla que almacena los cargos del huesped.

El problema que tengo es que la tabla donde se hacen los cargos, está en la base de datos del hotel. Realmente, no sé como colocar en el procedimiento almacenado, una sentencia para poder accesar la otra base de datos y poder actualizar la informacion de las tablas adecuadas.

Espero me puedan ayudar con este tema. Gracias por toda la atencion.

jachguate
05-09-2006, 15:45:44
Firebird no cuenta con forma alguna de conectarse a otra base de datos firebird de manera nativa. Lo que si podes hacer es un UDF que haga la tarea que vos precisas, estableciendo la conexión a la base en cuestión y haciendo los updates necesarios.

UDF => User Defined Function, y es una función contenida en una DLL que puede ser invocada directamente desde PSQL después de ser debidamente registrada.

Así, podes tener una función CargaLlamada que reciba los parámetros adecuados para realizar el cargo.

Otra solución, probablemente mas sencilla (dependerá de tu modelo) es unificar ambas bases de datos en una sola, de manera que las estructuras de una aplicación residan en la misma base de datos que las de la otra, así, la integración es mucho mas sencilla.

Saludos.

mario_2000
05-09-2006, 16:35:27
Voy a investigar acerca de los UDF. Muchas gracias por tu ayuda.

Buen Dia.