Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    accesso conteporaneo negato a stessa tabella


    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 ?

    Nell'istruzione rslogo.Open strSql,conn,3,3 i due numeri 3,3 cosa significano ?

    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

    %>

  2. #2
    I numeri indicano i cursori utilizzati.
    Per il problema del blocco, secondo me, ti converebbe postare su "Server".

  3. #3
    cosa sono i cursori utilizzati ?
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.