Newsgroup: it.comp.lang.visual-basic
Titolo: (?) LOOK dei record

Salve, ho un problema
uso DAO 3.51, ho provato anche con dao 3.6
quando ho:
MyRecodset.movefirst
myrecordset.edit
e contemporaneamente in un'altra macchina
MyRecodset.movelast
myrecordset.edit
la seconda macchina mi dice che il record è bloccato!!
come posso risolvere l'inconveniente? in poche parole ogni volta che faccio
EDIT mi si blocca tutto il recorsets e non solo il record specifico!!
come avete risolto?
grazie!

 wrote in message
ZprJ4.130629$pn3.1...@news.infostrada.it...


Con access non puoi utilizzare il blocco del singolo record, ma tramite un
lock ti dipo Ottimistico, puoi bloccare il record
solo per il tempo necessario al suo aggiornamento. Vedi LockOttimistico e
Pessimistico nell'help


 >


Io devo riuscire a bloccare un solo record, o devo impedire che più persone
facciano la modifica del record in contemporanea:
Se ad esempio all'installazione del programma in rete, per aggiungere tutti
gli articoli(programma gestione magazzino) vengono impiegati più di un
compiuter, più di un articolo a volta non può essere aggiunto, x' la tabella
e sempre bloccata!!
e se ad esempio una persona effettua una modfica ad un articolo, blocca
tutti gli inserimenti!!
HELP HELP HELP grazie

 compiuter, piů di un articolo a volta non puň essere aggiunto, x' la


 Io devo riuscire a bloccare un solo record,
Se usi il Jet Engine, il locking del singolo record in realtà blocca un
multiplo di 256 (Jet 2.x) o 512 byte (Jet 3.0 e 3.5). Questo fa sì che
potrebbero comunque risultati  bloccati + record contemporaneamente.
Un tentativo che potresti fare se vuoi rendere bloccabile un singolo record
per volta, è rendere il record lungo esattamente 512 byte, aggiungendo
quello che nel Cobol si chiamava campo filler, ossia un campo che occupa
spazio anche se non ti serve a niente.
Facci sapere se questo ti risolve il problema.
Ciao
*Roby*

 spazio anche se non ti serve a niente.
credo che access2k consenta anche l'rlock di clipper.
non so se con dao3.6, dao4 (mi sono perso: c'e'?), ado o come.

questo fatto del lock di un singolo record mi serve come il pane!!
fino a questo momento come avete fatto a risolvere il problema?
a me il problema + grsso si presenta quando devo aggiornare un archivio in
modo indiretto, cioè non dall'utente, mi spiego meglio:
un utente prende dall'archivio Articoli un record e cre un movimente
bnell'archivio movimenti.
Questo movimento deve leggere un secondo archivio collegato con i movimenti
che registra quanti pezzi ce ne sono di quell'articolo.
adesso, se due computer in contemporanea movimentano lo stesso articolo,
nell'archivio progressivi mi aggiorna prima uno e poi l'altro, oppure mi fa
casino e mi sottrae solo un'unità di qeull'articolo perchè l'altro
aggiornamento ha trovato il record bloccato????
uffa..
non ci levo le gambe!!

 non so se con dao3.6, dao4 (mi sono perso: c'e'?), ado o come.
Credo che il lock fisico sul record si possa fare solo con ADO. Dao3.6 è
solo un aggiornamento per permettere di leggere gli MDB di access2000, ma
non mi risulta che implementi il lock del singolo record (però potrei
sbagliarmi).
Comunque il lock del singolo record si può fare anche con DAO. Basta usare
gli archivi in formato DBF con il compatibility layer. 8-)
Ciao
*Roby*

 aggiornamento ha trovato il record bloccato????
Ti serve un semaforo.
Quando cominci ad aggiornare apri una transazione, così puoi sempre fare un
rollback. Se trovi un archivio impegnato, continui a provare e nel frattempo
chiedi all'utente se vuole continuare ad attendere o abortire il
salvataggio. Nel secondo caso fai un rollback. Semplice, no?
Comunque il problema ce l'avresti anche se access ti permettesse il locking
del singolo record. Il trucco sta nel tenere impegnati gli archivi (e i
record) solo il minimo indispensabile, così, anche in caso di
contemporaneità, l'attesa è comunque minima.
Ciao
*Roby*

 gli archivi in formato DBF con il compatibility layer. 8-)
gia'. mi sembrava pero' che coi (o con alcuni, tipo foxpro) dbf -- stando a
molti messaggi disperati negli ultimi mesi sul ng -- diventasse arduo
*aggiungere* un record... piu' loccato di cosi'... :)

 *aggiungere* un record... piu' loccato di cosi'... :)
Non saprei proprio cosa dire. In effetti l'ultima volta che usato i DBF da
Visual Basic c'era in giro solo il VB3.
Ciao
*Roby*

 con JET 4.0 (quindi DAO 3.6 e, credo, ADO con OLE-DB provider per Jet4).
Approposito di Dao 3.6. Ti risulta che non sia più possibile usare la
RepairDabase? Quando provo a fare:
DBengine.RepairDatabase NomeDataBase
mi da errore 3251: "Operazione non supportata per questo tipo di oggetto".
Invece la CompactDatabase funziona ancora bene.
Mah, misteri degli MDB.
Ciao
*Roby*

 entrambe le operazioni.
Sei sempre prezioso. Grazie.
Ciao
*Roby*

una cosa mi fa impazzire!!
io uso DAO 3.6 ed un db di access 2000, ma se faccio edit mi blocca ancora 2
Kb!!!
io uso ancora la sintassi che utilizzavo con dao 3.51
dim Db as database
dim Rs as recordset
set db=opendatabase(mydb)
set rs=db.opendatabase("PIPPO")
rs.edit
adesso:
xchè questo maledetto edit mi blocca ancora più di un record?
come cavolo posso fare a bloccare solo un record? quasi quasi adesso
telefono alla MS e gli chiedo come posso risolvere, devo trovare una
soluzine entro il 16 di questo mese... mi vengono a mancare le 250.000£ che
la MS richiede!!!
se esiste una sintassi strana o altro, perfavore COMUNICATEMELA (questione
di lavoro o disoccupato)
grazie (mille*mille*mille)^mille

 wrote in message
8epvan$s8h$7...@lacerta.tiscalinet.it...


 8epvan$s8h$7...@lacerta.tiscalinet.it...
