Ho su una intranet un server con win2000, attraverso un codice asp accodo delle domande estratte casualmente da un archivio in una tabella . Tutto funziona perfettamnete . Se però lancio la procedura da più terminali in contemporanea solo uno funziona , gli altri si bloccano alla riga 59 "rs.update "
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Impossibile aggiornare. Attualmente bloccato dall'utente "admin" sulla macchina "LASER-FB3ADFFE5".
/TEST/genera_domande.asp, line 59
Come posso fare per far accedere più utenti in contemporanea alla stessa tabella ?
grazie per l'aiuto
ecco qui il codice:
<%
Randomize
dim ID_SESSION
ID_SESSION=Session.SessionID
Function CreaFiltro(ByVal strFiltro)
Dim strValori
Dim lngInizio
Dim lngFine
Dim lngPuntatore
CreaFiltro = ""
strValori = Split(strFiltro)
lngInizio = LBound(strValori)
lngFine = UBound(strValori)
For lngPuntatore = lngInizio To lngFine
If CreaFiltro <> "" Then CreaFiltro= CreaFiltro & " AND "
CreaFiltro = CreaFiltro & "id <> " & strValori(lngPuntatore)
Next
End Function
Dim conn
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "dsn=concorso_dati;"
Dim strValoriEstratti
Dim rslogo
Dim lngNumeroValoriDaEstrarre
Dim lngPuntatore
Dim lngMuovitiAvantiDi
strValoriEstratti = "0"
lngNumeroValoriDaEstrarre = 60
strSql = "SELECT * FROM DOMANDE"
set rslogo = Server.CreateObject("ADODB.recordset")
rslogo.Open strSql,conn,3,3
sql = "SELECT * FROM TEST"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
For lngPuntatore = 1 To lngNumeroValoriDaEstrarre
rslogo.MoveFirst
rslogo.Filter = CreaFiltro(strValoriEstratti)
lngMuovitiAvantiDi = Int(RND * rslogo.RecordCount)
rslogo.Move lngMuovitiAvantiDi
strValoriEstratti = strValoriEstratti & " " & rslogo("id")
rs.addnew
rs(1) = rslogo("id")
rs(2) = rslogo("DOMANDA")
rs(3) = SESSION.SessionID
rs(4) = NOW
rs.update
Next
rs.Close
set rs = Nothing
rslogo.Close
conn.Close
set conn = Nothing
%>