Ver Mensaje Individual
  #2  
Antiguo 12-08-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Desde un SP yo uso una DLL que proporciona una función (UDF) que permite almacenar en un archivo de texto un mensaje. Como la DLL se encuentra en el servidor, el archivo será creado ahí. Es una herramienta interesante que uso para depurar el código y también para almacenar logs según se van ejecutando órdenes dentro de un SP.

La forma de usarla es simple:

Código SQL [-]
SELECT DEBUGGER('Este es un mensaje generado el  ' || CAST(CAST('NOW' AS TIMESTAMP) AS VARCHAR(24)), 'D:\Logs\Log0001.log', '1')
FROM RDB$DATABASE INTO ebuggerResult;

Esta sentencia creará el archivo Log0001.log en la ubicación D:\Logs en el servidor. Dentro de este archivo el mensaje: "Este en un mensaje generado el 2008-08-12 13:33:18.0000"

DEBUGGER es una UDF previamente declarada en la base de datos así:

Código SQL [-]
DECLARE EXTERNAL FUNCTION DEBUGGER
  CSTRING(255), CSTRING(255), CSTRING(2)
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'debugger' MODULE_NAME 'ibdebug';

y la DLL ibdebug puedes construirla tu mismo usando Delphi, lenguaje C, u otro lenguaje.

Como se trata de una sentencia SQL normal que usa una función definida por el usuario puedes usarla dentro de tu TRIGGER.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 12-08-2008 a las 19:35:24.
Responder Con Cita