4D v12.4On Server Open Connection Database Method |
||||||||||
|
4D v12.4
On Server Open Connection Database Method
|
Parâmetro | Descrição |
$1 | Número de usuário utilizado internamente por 4D Server para identificar-los |
$2 | Número de conexão utilizado internamente por 4D Server para identificar-la |
$3 | Obsoleto: sempre devolve 0 mas deve ser declarado |
Estes números de referencia não são utilizados diretamente como fontes de informação a passar, por exemplo, como parâmetros a um comando 4D. No entanto, oferecem uma maneira particular de identificar um processo 4D Client entre o On Server Open Connection Database Method e o Método banco de dados On Server Close Connection. A combinação destes valores é único no momento de uma seção 4D Server. Ao guardar esta informação em uma tabela ou em um array entre processos, os dois métodos base podem trocar informações. No exemplo ao final desta sessão, os dois métodos base utilizam esta informação para armazenar a data e hora de inicio e fim de uma conexão no mesmo registro de uma tabela.
O seguinte exemplo mostra como manter um histórico das conexões à base de dados utilizando o On Server Open Connection Database Method e utilizando o Método banco de dados On Server Close Connection. A tabela [Server Log] (mostrada a continuação) se utiliza para fazer seguimento aos processos de conexão:
A informação armazenada nesta tabela é administrada pelo On Server Open Connection Database Method e o Método banco de dados On Server Close Connection listado a continuação:
` Método base On Server Open Connection
C_LONGINT($0;$1;$2;$3)
` Criar um registro [Server Log]
CREATE RECORD([Server Log])
[Server Log]Log ID:=Sequence number([Server Log])
` Guardar o histórico de data e Hora
[Server Log]Log Date:=Current date
[Server Log]Log Time:=Current time
` Guarda a informação de conexão
[Server Log]User ID:=$1
[Server Log]Connection ID:=$2
SAVE RECORD([Server Log])
` Não devolve erro da maneira que a conexão pode continuar
$0:=0
` Método base On Server Close Connection
C_LONGINT($1;$2;$3)
` Recuperar o 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 data e hora de desconexão
[Server Log]Exit Date:=Current date
[Server Log]Exit Time:=Current time
` Guardar informação processo
[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 são algumas entradas em [Server Log] mostrando varias conexões remotas:
O seguinte exemplo evita uma nova conexão entre as 2 e 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
Produto: 4D
Tema: Métodos banco de dados