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

    [VB;ADODB] UPDATE RECORD senza COLLISIONI

    ciao ragazzi,
    vi spiego meglio il problema:
    io ho un programma ke ho installato su diversi client ma il database è unico.

    Al momento ke un utente modificasse un record,vorrei le sue modifiche non andassero in collisione ad un altro utente(se x caso sta modificando lo stesso record).

    Vorrei ke colui ke modificasse x secondo il programma gli segnalerà ke il record è stato aggiornato da qualcun altro ...

    come posso fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    guardati i lock dei recordset.

    Servono proprio per gestire questi tipi di casi

    Ci sono i lock ottimistici, pessimistici e di tipo batch


  3. #3
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Usa le transazioni, Luke. :adhone:

    Prova a sfruttare i metodi BeginTrans, CommitTrans e RollbackTrans dell'oggetto connection.
    Credo che sia proprio cio' di cui hai bisogno.
    ChReAn
    -------------------

    Slackware 9.1 powered

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da ChReAn
    Usa le transazioni, Luke. :adhone:

    Prova a sfruttare i metodi BeginTrans, CommitTrans e RollbackTrans dell'oggetto connection.
    Credo che sia proprio cio' di cui hai bisogno.
    già, ammesso che non vengano lanciate 2 commit contemporaneamente sullo stesso record....

  5. #5
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da darkblOOd


    già, ammesso che non vengano lanciate 2 commit contemporaneamente sullo stesso record....
    Ora non ricordo di preciso, ma mi pare che i recordset in VB vengano aperti di default con un lock ottimistico... Quindi la transazione si dovrebbe occupare del lock, o sbaglio?
    ChReAn
    -------------------

    Slackware 9.1 powered

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da ChReAn


    Ora non ricordo di preciso, ma mi pare che i recordset in VB vengano aperti di default con un lock ottimistico... Quindi la transazione si dovrebbe occupare del lock, o sbaglio?
    no mi ricordo bene neanch'io ma mi sembra che il lock usato di default non ti preveniva un possibile inconveniente.

    Sta a lui cmq trovare la strada migliore per risolvere il suo problema, basta vedere come si comportano i lock, le transazioni e far quadrare il tutto.


  7. #7
    grazie ragazzi,
    ma il mio problema è diverso il 1° utente apre diversi recordset ed io li kiudo tutti. al momento della memorizzazione devo verificare se qui record hanno subito variazioni.

    ho risolto in questo modo:
    ho creato una matrice di ADODB.recordset dei record aperti così al momento della memorizzazione confronto la matrice memorizzata con i 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 © 2024 vBulletin Solutions, Inc. All rights reserved.