26 messaggi dal 06 settembre 2002
Salve a tutti,
spero qualcuno abbia voglia di considerare questo mio problema...

Degli operatori di call center ricevono delle telefonate e devono compilare un form con i dati dell'utente.

L'applicazione ASP deve occuparsi di assegnare ad ogni telefonata un codice univoco di 15 caratteri numerici.

Come posso fare?? (USO SQL SERVER)



Ho pensato a una tabella di un db che contiene un solo record con 2 campi:

ID (l'intero che mi identifica la chiamata)
SEMAPHORE (che può valere ROSSO o VERDE)


Il problema che voglio evitare è che 2 operatori facciano la richiesta contemporaneamente e finiscano per assegnare a due telefonate lo stesso codice...

ho pensato che la scelta univoca può essere implementata sfruttando Il lock pessimistico di ASP e il seguente codice (pseudocodice):

<code>
done=0

while done=0

if rs("Semaphore")="verde" then
rs("Semaphore")="rosso" ' inizia il lock
c = rs("id")
rs("id) = c 1
rs("Semaphore)="verde"
rs.update ' fine lock
done=1
end if

loop

identificativo_univoco=c

</code>


Che dite?? funziona o può esserci qualche problema??

ci sono sistemi più facili per ottenere lo stesso risultato??

grazie,

Marco




1.818 messaggi dal 21 giugno 2001
Contributi
Il probleba sta nel bloccare il db in lettura e scrittura quando un altro utente sta scrivendo o sta per scrivere nel db.

Leggiti il Post "Lock di un DB"

cia
hyppos


hyppos
<code> in giro torte sol ciclos et rotor igni</code>
101 messaggi dal 05 luglio 2001

Crea una routine che generi una stringa alfanumerica (o solo numerica) utilizzando randomize. Il lock del db deve essere utilizzato solo se più utenti accedono allo stesso record nello stesso momento ma questo non è il tuo problema. Evita di lockare il db inutilmente o avrai seri problemi di performance.

Ancor meglio potresti utilizzare un campo GUID di sql server e creare usa stored procedure che ti restituisca il valore del GUID quando salvi il record.
In alternativa puoi creare una dll ActiveX che generi una stringa GUID a 32 caratteri univoca copiando il codice da
http://support.microsoft.com/support/kb/articles/Q176/7/90.ASP

Ciao
Gabriele

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.