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

    Concorrenza di accesso.

    Salve ragazzi/e, ho problema di questo tipo, ho una pagina asp in cui viene eseguito l'aggiornamento di un progressivo su database access, ogni volta che qualcuno accede alla stessa.
    Il problema è che se due persone accedono allo stesso istante alla pagina asp, magari lo script non riesce ad eseguire in tempo l'aggiornameto del progressivo, questo perchè il progressivo viene calcolato tramite una select max e successivamente update, quindi due persone potrebbero trovarsi lo stesso progressivo assegnato...

    esite una maniera di fare eseguire una pagina asp in ordine cronologico di accesso???

    grazie.

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

    Roby

  3. #3
    Che cosa vuol dire prova con le transazioni?

  4. #4
    Anche se usi le transazioni non risolvi molto,
    perchè tu prima fai una select del max di un valore e ottieni
    questo valore ad esempio 10, se un secondo utente in contemporanea
    fa la stessa operazione otterrà 10 anche lui.

    Quando fai update entrambi avranno 10 come ID, la transazione, se ben mi ricordo si attiva solo sulle operazioni di manipolazione del DB INSERT/UPDATE/DELETE e non sulla SELECT. Quindi in questo caso averla o non averla (la transazione) è la stessa identica cosa,
    andresti sempre a fare l'update con lo stesso valore per i due utenti, in due istanti diversi dovuti alla transazione.

  5. #5
    La mia è una situazione molto estremizzata ma possibile.
    Due utenti in super contemporanea ottengono lo stesso ID.

  6. #6
    Quindi non ci sono soluzioni?

  7. #7
    Con access è un pochino un casino, o crei un campo autonumber e invece di utilizzare un Select Max usi questo, oppure devi inventarti
    tu un codice univoco.

    La soluzione più semplice è l'autonumber.

  8. #8
    in cima alla pagina

    application.lock



  9. #9
    Potrei settare una variabile application("utente"), magari lockandola, che si valorizza come un utente entra, ovviamente prima di valorizzarla verifico che non sia già valorizzata.
    Se è valorizzata continuo a richiamare la pagina asp in oggetto sino a che la variabile application non ritorna libera e quindi la rivalorizzo ed eseguo lo script.
    Vista comunque la velocità dello script in oggetto, al massimo credo che la pagina possa essere richiamata una volta singola.

  10. #10
    Può essere una soluzione valida.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.