Visualizzazione dei risultati da 1 a 7 su 7

Discussione: errore scrittura su DB

  1. #1

    errore scrittura su DB

    ho un database in cui ci sono mumerossimi accessi in scrittura, a volte quando un utente cerca di scrivere da questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80004005'

    [Microsoft][Driver ODBC Microsoft Access] Il modulo di gestione di database Microsoft Jet ha interrotto l'elaborazione. Un altro utente sta tentando contemporaneamente di modificare gli stessi dati.


    come posso ovviare a questo problema?
    devo midificare i parametri di apertura del DB? Quali?

    ecco la mia stringa:
    RS.open "select * from statistiche WHERE date=#"&SqlDate&"#", Conn, 3, 3
    ...
    ...
    --- [color= darkorange]L'uomo è il computer più straordinario di tutti [/color]----

    http://www.simogrima.com

    Grifone

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Dovresti usare le transazioni.

    Roby

  3. #3
    fammi capire, questo sarebbe il codice, (in pratica tutte le volte che carica una pagina aumenta il contatore di uno):

    ************************

    set RS = Server.CreateObject("ADODB.Recordset")
    RS.open "select date, webg from statistiche WHERE date=#"&SqlDate&"#", ConnCont, 3, 3
    if RS.EOF then
    RS.Addnew
    RS("webg") = 1
    RS("date") = date()
    else
    RS("webg") = RS("webg")+1
    end if
    RS.Update
    RS.Close
    Set Rs = Nothing
    ConnCont.close
    Set ConnCont = nothing

    *****************************
    su RS.update a volte schianta,

    dovrei farlo così??

    ***************************
    Conn.begintrans

    set RS = Server.CreateObject("ADODB.Recordset")
    RS.open "select date, webg from statistiche WHERE date=#"&SqlDate&"#", ConnCont, 3, 3
    if RS.EOF then
    RS.Addnew
    RS("webg") = 1
    RS("date") = date()
    else
    RS("webg") = RS("webg")+1
    end if
    RS.Update
    RS.Close
    Set Rs = Nothing
    ConnCont.close
    Set ConnCont = nothing

    Conn.CommitTrans
    ***************************

    in questo caso in caso di errore cosa succede???
    --- [color= darkorange]L'uomo è il computer più straordinario di tutti [/color]----

    http://www.simogrima.com

    Grifone

  4. #4
    e se io in cima ci mettessi un bel:

    On Error Resume Next

    disattivando la gestione automatica degli errori,
    se non mi aggiorna il contatore non me ne frega, l'importante è che non mi dia errore, che ne pensi?
    --- [color= darkorange]L'uomo è il computer più straordinario di tutti [/color]----

    http://www.simogrima.com

    Grifone

  5. #5
    ma così perdi comunque l'inserimento dei dati ...
    dovresti comunque gestire l'errore ...

  6. #6
    l'unica cosa che viene fatta è incrementare di 1 un contatore (mi serve per conteggiare i click) se una volta ogni tanto il click non mi viene conteggiato perche mi "schianta", non mi importa, l'importante è che all'utente non venga visualizzato l'errore, comunque se qualcuno ha qualche idea migliore...

    grazie
    --- [color= darkorange]L'uomo è il computer più straordinario di tutti [/color]----

    http://www.simogrima.com

    Grifone

  7. #7
    se non ti interessa il dato in tempo reale potresti memorizzare i click della giornata in un file di testo e di notte schedulare un a procedura che legge il file di testo e modifica il dato sul db ...

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.