Passa al contenuto principale

DEFAPPLOCK

DesktopWeb
warning
La specifica è deprecata nei sorgenti con STRICT maggiore o uguale a 4, al suo posto vedere classe BC_DA_APPLOCK
warning

La specifica è disponibile slo per le applicazioni che utilizzano SQLServer.

Consente di gestire un lock applicativo su un programma.
In questo modo altri programmi avviati contemporaneamente possono capire se chi ha impostato il lock è ancora vivo e operante.

Un esempio è quando si vuole avere l'accesso esclusivo ad una procedura.

note

La sequenza di funzionamento è la seguente:

  • Tentativo di lock basato sul NOME.
  • Se il lock è acquisito viene eseguita la callback GESTIONEDATI. Al cui termina rilascia il lock.
  • Se il lock è stati già acquisito viene eseguita la callback GESTIONEERRORE.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
NOMEStringaINObbligatorioDesktopWeb
GESTIONEDATIAzioneINObbligatorioDesktopWeb
GESTIONEERROREAzioneINObbligatorioDesktopWeb
MODOInteroINDesktopWeb
TIPOInteroINDesktopWeb
TIMEOUTInteroINDesktopWeb

NOME

StringaINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Identificativo univoco del lock.

GESTIONEDATI

AzioneINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Callback eseguita in caso sia stato acquisito il lock.

GESTIONEERRORE

AzioneINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Callback eseguita in caso il lock sia stato acquisito da un altro programma.

MODO

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Modalità di gestione del lock.

Può avere i seguenti valori:

ValoreDescrizione
0Esclusivo.
1Condiviso.

Il funzionamento è il seguente:

  • Si può acquisire un lock condiviso se non c'è un programma che ha acquisito il lock in modalità esclusiva.
  • Si può acquisire un lock esclusivo se non c'è nessun lock condiviso o esclusivo.

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
0Esclusivo
1Condiviso

TIPO

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Distingue la durata del lock.

ValoreDescrizione
0Sessione (connessione al db).
1Transazione.

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
0Sessione (connessione al DB)
1Transazione

TIMEOUT

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Indica il tempo di attesa se il lock risulta occupato.

Il tempo è in millesecondi.
Il valore 0 specifica di non attendere che il lock sia acquisito.

Esempi

Definizione

 '@DEFAPPLOCK NOME["<LockName>"] _
GESTIONEDATI[DataElaboration()] _
GESTIONEERRORE[ErrorManagement()] _
TIPO[0] _
MODO[0]