puoi provare ad eliminare tutto questo pezzo di codice
codice:
sql = "select NumVisualizzazioni, ufficio from faldone where codice=" & codice
Response.Write(sql & "
")
Dim gestdb As New DBgest
gestdb.sql = sql
Dim dati = gestdb.apridati()
dati.Read()
Dim visual = dati("NumVisualizzazioni")
Dim ufficio = dati("ufficio")
'Inizializzo a 0 se l'articolo è nuovo
If visual Is DBNull.Value Then visual = 0
visual = visual + 1
e fare solo la query di update per vedere su funziona il tutto (il codice fa la stessa identica cosa di prima)
codice:
' Aggiorno il DB
sql = "update faldone set NumVisualizzazioni=NumVisualizzazioni+1 where codice=" & codice
Dim gestdb As New DBgest
gestdb.sql = sql
Response.Write(sql)
gestdb.esegui()
Il problema potrebbe essere nel metodo Read che per qualche motivo locka la tabella/riga?
Se usi sql server potresti usare sqlprofiler e controllare cosa succede sul db. L'operazioni dovrebbe essere istantanea visto che immagino che l'update sia su di un solo record