4D v12.4Método base On Server Open Connection |
||||||||||
|
4D v12.4
Método base On Server Open Connection
|
Parámetro | Descripción |
$1 | Número de usuario utilizado internamente por 4D Server para identificar los usuarios |
$2 | Número de conexión utilizado internamente por 4D Server para identificar una conexión |
$3 | Obsoleto: siempre devuelve 0 pero debe declararse |
Estos números de referencia no son utilizables directamente como fuentes de información a pasar, por ejemplo, como parámetros a un comando 4D. Sin embargo, ofrecen una manera única de identificar un proceso 4D Client entre el Método base On Server Open Connection y el Método base On Server Close Connection. La combinación de estos valores es única en cualquier momento de una sesión 4D Server. Al guardar esta información en una tabla o en un array interproceso, los dos métodos base pueden intercambiar información. En el ejemplo al final de esta sección, los dos métodos base utilizan esta información para almacenar la fecha y hora de inicio y fin de una conexión en el mismo registro de una tabla.
El siguiente ejemplo muestra cómo mantener un historial de las conexiones a la base de datos utilizando el Método base On Server Open Connection y utilizando el Método base On Server Close Connection. La tabla [Server Log] (mostrada a continuación) se utiliza para hacer seguimiento a los procesos de conexión:
La información almacenada en esta tabla es administrada por el Método base On Server Open Connection y el Método base On Server Close Connection listado a continuación:
` Método base On Server Open Connection
C_LONGINT($0;$1;$2;$3)
` Crear un registro [Server Log]
CREATE RECORD([Server Log])
[Server Log]Log ID:=Sequence number([Server Log])
` Guardar el historial Fecha y Hora
[Server Log]Log Date:=Current date
[Server Log]Log Time:=Current time
` Guarda la información de conexión
[Server Log]User ID:=$1
[Server Log]Connection ID:=$2
SAVE RECORD([Server Log])
` No devuelve error de manera que la conexión puede continuar
$0:=0
` Método base On Server Close Connection
C_LONGINT($1;$2;$3)
` Recuperar el registro [Server Log]
QUERY([Server Log];[Server Log]User ID=$1;*)
QUERY([Server Log];&;[Server Log]Connection ID=$2;*)
QUERY([Server Log];&;[Server Log]Process ID=0)
` Guardar fecha y hora de desconexión
[Server Log]Exit Date:=Current date
[Server Log]Exit Time:=Current time
` Guardar información proceso
[Server Log]Process ID:=Current process
PROCESS PROPERTIES([Server Log]Process ID;$vsProcName;$vlProcState;$vlProcTime)
[Server Log]Process Name:=$vsProcName
SAVE RECORD([Server Log])
Estas son algunas entradas en [Server Log] mostrando varias conexiones remotas:
El siguiente ejemplo evita una nueva conexión entre las 2 y 4 A.M.
` Método base On Server Open Connection
C_LONGINT($0;$1;$2;$3)
If((?02:00:00?<=Current time)&(Current time<?04:00:00?))
$0:=22000
Else
$0:=0
End if
Producto: 4D
Tema: Métodos base