Newsgroup: it.comp.lang.visual-basic
Titolo: Problema grosso o cavolata?

Ciao a tutti, ho un problema che tenterò di spiegare, ma non so se
basteranno due righe.
Premessa:
Sto facendo un programma in VB6 che deve permettere l'accesso e la modifica
a due utenti su due computer (diciamo A e B) a un database access 97 com
provider Jet 3.51 utilizzando ado.
Per visualizzare i dati uso dei controlli textbox. Uso un DataEnvironment
per accedere alle tabelle access, e il lock è di tipo ottimistico immediato
(non batch). Tutte queste opzioni (eccettuato il provider) non posso
cambiarle.
Enunciato:
Il problema si presenta quando, dopo che A ha modificato un campo x del
record n e ha chiamato Update, il computer B tenta di modificare lo stesso
campo dello stesso record (che agli occhi di B ha ancora il valore
antecedente la modifica di A) e ovviamente mi viene dato un errore di
concorrenza rilevato dalla proprietà status.
Richiesta di aiuto:
Io vorrei fare in modo che l'utente non sapia di questa collisione e che
salvi ugualmente le modifiche. Come fare?
Se ricaricassi la tabella access nel recordset (requery non funziona,
perchè?)
e ripetessi la modifica e l'update dovrebbe funzionare tutto no?
GRAZIE
        Brex

 wrote


Il metodo più adeguato è: studiarti Jet e la gestione della concorrenza. I
metodi che ti hanno consigliato sono solo dei tentativi di far funzionare la
cosa nel peggiore dei modi.
Ti dò un piccolo aiuto... giusto per farti trovare la strada.
Jet 3.5 permette di fare il lock dei dati in tre modi
1. A livello di DB (un solo utente può operare)
2. A livello di recordset
3. A livello di pagina (una pagina in Jet è di 2kb e in essa ovviamente
possono esserci più record)
...
non continuo... altrimenti ti scrivo un libro :-))) in ogni caso se hai
domande più specifiche sono a disposizione. Ciao

Non credo di essermi spiegato bene:
Ho un form con controlli textbox collegati a DataEnvironment1.Tabella
e bottoni che mi permettono di navigare nel recordset
(DataEnvironment1.Tabella.MoveNext...).
Quando chiamo DataEnvironment1.Tabella.Requery non sono più in grado di
navigare all'interno del recordset con i bottoni, e non capisco il perchè.
Se riuscissi a fare questo il mio problema sarebbe risolto perchè
B farebbe una catch dell errore, io aggiornerei il recordset e scriverei
nuovamente le modifiche.
Nel mio progetto è giusto che l'ultima modifica del record venga salvata.
    Grazie a tutti, Brex

 possono esserci più record)


 wrote in message NMy14.4877$Q.4...@typhoon.libero.it...


 wrote in message
826vp8$lbn$1...@lacerta.tiscalinet.it...


 l'ultima sol che ti davo cmq sarebbe qla che userei io *in ogni caso*.
l'idea e' qta sotto.
in un relazionale uno deve sapere qlo che sta facendo, anche se non sembra
importante.
solo che il cod e' vecchio, ora ricaricherei il record da un
nuovo rs, non da quello del datacontrol, che appunto e' probabilmente
outdated:
Public Sub DBDelete()
    On Error GoTo errman
    Dim TmpTxt, j
' sub che non ti serve, determina qual e' il child vivo al momento:
    ActiveDb (frmMAM.ActiveForm.Caption)
'ok- rsfunc e' il datacontrol del frm attivo:
    For j = 0 To RsFunc.Fields.Count - 1
        TmpTxt = TmpTxt & "[" & RsFunc.Fields(j).Name & "]: " &
RsFunc.Fields(j) & vbCrLf
        If Len(TmpTxt) > 500 Then Exit For
    Next
    conf = MsgBox("ELIMINARE LA SCHEDA CORRENTE?" & vbCrLf & TmpTxt,
vbYesNoCancel)
    If conf <> vbYes Then Exit Sub
    RsFunc.Delete
    RsFunc.MovePrevious
    If RsFunc.BOF Then RsFunc.MoveFirst
    Exit Sub
errman:
    MsgBox Error
End Sub

Credimi ho fatto molta fatica a interpretare il tuo messaggio... credo
proprio che tu sia straniero vero ???
Visto che in italiano non te la cavi molto. Se vuoi puoi far tradurre da
qualcuno il tuo pensiero e poi lo scrivi sul NG.
Ciao.
Se vuoi puoi scrivere in inglese.

 wrote


 wrote in message
ltw44.14594$Bg7.1...@typhoon.libero.it...


 wrote


v. a c.
...
la mia opinione su di te non cambia... non sai scrivere. e informaticamente
parlando sei un gran ignorante.
EOT.

 sempre desideroso di imparare
Parlavi di me? :-)))))
Ciao
Flavio Ronco
-- 
f.ronco@*NonMiServeNiente*
flashnet.it
http://www.metabrains.com
  [Under Construction]
-------------------------------------------------------------
"Che pubblico in gamba! Se ci dite dove lavorate,
domani mattina se abbiamo tempo vi veniamo a vedere"
[Paolo Rossi]

 wrote in message
3854319B...@flashnet.it...


ignorante. Lascia stare l'informatica non fa per te.
Ehm......
scusate se disturbo ma possiamo lasciare le offese ad altra sede? Non è che sputtanandovi a vicenda dimostrate chi è più
bravo....
Sono d'accordo con Pal che avresti potuto dare dei consigli più specifici invece di "aiutino aiutino giusto per indicare
la giusta strada...." poiché c'è gente che magari ha bisogno di cose concrete... mica tutti siamo dei geni ...
Ma ora basta o, se proprio volete, continuate ad insultarvi in privato...
Ciao,
Moreno
#sirri#@
morenosoft.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

  io in lettere (moderne, indirizzo filologico)
Se ti sei laureato in  filologia ROMANZA sei il mio idolo!

 wrote in message


 Ma ora basta o, se proprio volete, continuate ad insultarvi in privato...
veramente io proponevo proprio, in altro thread con msmile, di smetterla
tutti e due che non giova a nessuno, e di passare a parlare di programmi in
concreto, cosa che preferisco. e lui e' d'accordo.
pero' consentimi che sentirmi dare dell'ignorante e di uno che scrive male,
dopo che a suo tempo sono stato recensito e intervistato <g> da quotidiani
nazionali, puo' farmi un po' girare. tanto piu' che sono uno dei pochi che
cercano di non affondare la lingua italiana, su questo ng... ((( hai fatto
una statistica dei congiuntivi nella media ng e in quella dei miei messaggi,
p.e. ? <g> :):):)
per il resto, ammetterai che normalmente quello non e' il mio tono.
l'insulto, anche in privato, mi sa serva a poco. anzi, a una mintula, -ae
...
grazie cmq del richiamo alla realta' -- sempre benemerito -- e ciao, andrea