salve ! spero sia il forum giusto.. in caso contrario chiedo venia.
Scenario del problema :
Le tabelle che vengono utilizzate dall'applicazione hanno un "ID" il cui valore è di tipo "mixed" ovvero i primi 3 bytes identificano la tabella i rstanti 17 l'identificativo progressivo.
Il tutto viene gestito tramite una tabella "autoinc" che serve ad identificare l'ultimo valore di id raggiunto per ogni tabella del Db.
Il problema che incontro è il seguente :
come posso eseguire l'update incrementando il contatore e poi ricavarne il suo valore avendo la certezza che nello stesso istante non avvenga lo stesso processo da parte di altre chiamate ? Immagino con un record lock ma non so come implementarlo...
Set DbAinc = Server.CreateObject("ADODB.Connection")
set qy_cercaid =server.createobject("ADODB.Recordset")
DB.ConnectionString=session("dbconnection")
Db.Open
sql = "Update autoinc set counter = counter + 1 where tableid = 1"
qy_cercaid.open sql,Db
sql = "select counter from autoinc where tableid = 1"
qy_cercaid.open sql,Db
nuovoid = qycercaid("counter")
è chiaro che così fa acqua come un colabrodo...
Grazie in anticipo!