Newsgroup: it.comp.lang.visual-basic
Titolo: Ado

Ciao a tutti, mi servirebbe un grosso aiuto.
Visual Basica mi da questo errore:
Operazione non consentita nel contesto corrente.
L'eerore mi viene dato su rs_record.close
Che cosa può essere????
If Err Then
    Connection.RollbackTrans
    Rs_Record.Close
    Err.Clear
    MsgBox "Attenzione, salvataggio non eseguito", vbCritical
 End If

 ha scritto

err arriva quando probabilmente rs e' gia'/ancora chiuso.
ciao, j.

Err è indipendente dal recordset ...
Che io rammenti la rollback non dovrebbe
chiudere il recordset, anche perchè la rollback
è un metodo dell'oggetto connection e non del
recordset stesso. Tuttavia metti un breakpoint
e verifica lo state di rs dopo e prima della
rollback ... e vedi cosa sputa fuori.
Ciao
Andrea 

 rollback ... e vedi cosa sputa fuori.
Quando il cursore mi arriva su rollback il recordset è aperto.
 è aperto anche quando si sposta su rs_record.close

 chiudere il recordset,
Beh, sai com'č...
Se il recordset č aperto su una tabella creata dentro alla Transaction, la
vedo dura che resti utilizzabile dopo un Rollback...
Alberto
--
"Non mi sembra piů granda del Delfino..."
"A partir dal fat che la merda liquida
l'as drisa gnan a puntlarla,
cňsta chě l'č piň granda, gnuranta."

purtroppo mi manca la palla di vetro :)
non sò su cosa stia lavorando Mark, ha postato un
pezzo di codice per la gestione dell'errore.
Però se dice che il recordset risulta apero anche dopo
la rollback ... il motivo deve essere un altro e secondo
me nemmeno quello che hai ipotizzato tu Albe ..
magari se Mark fornisse qualche dettaglio in +
Ciao
Andrea 

  vbCritical End If
....no!??!
;-)
-- 
Il Wodkino Nazionale č a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel
bestiario! :-)
---
Messaggio scannerizzato e certificato "Virus free" da AVG free edition.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.775 / Virus Database: 522 - Release Date: 08/10/2004

 ha scritto nel messaggio
news:ckds4l$jk4$1...@lacerta.tiscalinet.it...


 ha scritto nel messaggio
news:sLAad.35675$N45.1...@twister2.libero.it...


 ha scritto

1. quando metto on error, di solito a questo punto metto un exit sub.
2. se tralasci/commenti la transazione, cosa succede ?


 ...."
non capisco solo perche' l'errore non glielo spara su begintrans
ciao, j.

 Come dovrei fare per avere una connessione "Servita"?
sigh
f1 .....
cerca
CursorLocation
oppure guarda la proprietà cursorlocation della connessione
-- 
Il Wodkino Nazionale è a : 
www.martek.it


 ha scritto nel messaggio
news:Oszbd.36407$b5.18...@news3.tin.it...


> End If
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 1) Sono rincoglionito
propendo per questa ipotesi!!!
AHAHAHAH
Scherzo...ho provato sul mio pc il tuo codice e va...quindi.....spulcia il
tuo codice!
...ehm...scusa...
ma che database usi?....che provider?
SUPPORTANO LE TRANSAZIONI???????
se no si parla del  nulla!!!!!!!!
:-)
-- 
Il Wodkino Nazionale č a : 
www.martek.it



Scusa, Wodka, non è questione di If, il gruppo di istruzioni dopo
l'etichetta Errori viene eseguito comunque, quindi l'istruzione Rollback
viene sempre chiamata anche se non c'è stato errore, solo che ormai il
recordset è chiuso e il rollback è impossibile da eseguire. Anzi, se è
avvenuto un errore durante il codice, l'istruzione Rollback viene eseguita
normalmente perché il recordset è ancora aperto, in quanto il salto
all'etichetta Errori ha oltrepassato l'istruzione di chiusura del recordset.
Se invece l'errore non c'è stato, l'esecuzione dovrebbe uscire quando arriva
all'etichetta Errori, perché il codice seguente dovrebbe essere eseguito
soltanto On Error.
é un errore comune di molti programmatori


>>> [...cut...]
abbi pazienza ....NO!
goto test
:TEST
if err.number <>0 then
....qualcosa
endif
secondo te qualcosa vien eseguito????
nello specifico il suo errore va corretto parzialmente cosě
......
Errori:
 If Err.Number <> 0 Then
 MsgBox CStr(Err.Number) & " : " & Err.Description, vbCritical, "Errore!!!"
 'per farti capire!!!
 'questa sezione!
 Stop
    Rs_Record.CancelUpdate
    Cn.RollbackTrans
    Err.Clear
    MsgBox "Attenzione, salvataggio non eseguito", vbCritical
 End If
........
lui fa l'errore in Addnew......se non fai cancelUpdate non va.....mettendo o
non mettendo exit sub......
anche io son d'accordo con te
e dico che quello cha ha fatto mark č "spaghetti-code"
perň...forse per caso...ha avuto la fortuna di rinchiudere il rollback
dentro un test...quindi se il test fallisce non lo esegue!
scaricati il codice quando hai tempo...ed eseguilo passo passo...vedrai che
se tutto va ok...tutto funziona perchč l'if esclude o consente il
rollback....
posto che tu ed io...avremmo fatto sicuramente in un altro modo!
Ciao! :-)


>
ihihihihhi
diavoletto di un pensiero........
non č che usi l'adodatacontrol??????????
quello fa solo connessioni CLIENT!!!!!!


Ultima cosa....
ho riusato molto del tuo codice e l'ho fatto al volo...c'ho da fa!
E migliorabile quasi ovunque...solo che non mi son messo ad ottimizzarlo
perchè non so che c'hai da fare...e poi non ho tempo!
prendilo come spunto!



per cancellare una cosa che stai facendo (su un recordset o altro)
cito:
CancelUpdate Method
Cancels any changes made to the current or new row of a Recordset object, or
the Fields collection of a Record object, before calling the Update method.
Syntax
recordset.CancelUpdate
record.Fields.CancelUpdateRemarks
Recordset
Use the CancelUpdate method to cancel any changes made to the current row or
to discard a newly added row. You cannot cancel changes to the current row
or a new row after you call the Update method, unless the changes are either
part of a transaction that you can roll back with the RollbackTrans method,
or part of a batch update. In the case of a batch update, you can cancel the
Update with the CancelUpdate or CancelBatch method.
If you are adding a new row when you call the CancelUpdate method, the
current row becomes the row that was current before the AddNew call.
If you are in edit mode and want to move off the current record (for
example, with Move, NextRecordset, or Close), you can use CancelUpdate to
cancel any pending changes. You may need to do this if the update cannot
successfully be posted to the data source (for example, an attempted delete
that fails due to referential integrity violations will leave the Recordset
in edit mode after a call to Delete).
Record
The CancelUpdate method cancels any pending insertions or deletions of Field
objects, and cancels pending updates of existing fields and restores them to
their original values. The Status property of all fields in the Fields
collection is set to adFieldOK.
:-)
per esempio!
-- 
Il Wodkino Nazionale è a : 
www.martek.it


> javalab ti ha già scritto:
ehilà!
java come sta?
...nel suo caso l'errore si presenta a suo dire quando fa un ADD
e ci credo perchè le modifiche le faceva comunque se andava tutto
liscio...il problema si presentava anche a me...con exit o non exit solo se
a) Faceva un addnew
b) interveniva un errore
c'ho perso un po di tempo....
Lupo a suo tempo m'aveva dato un link dove scaricare tutti gli help
possibili...perso in una riformattazione sigh!
un ADO260.chm che uso moltissimo recitava
"....
Use the CancelUpdate method to cancel any changes made to the current row or
to discard a newly added row. You cannot cancel changes to the current row
or a new row after you call the Update method, unless the changes are either
part of a transaction that you can roll back with the RollbackTrans method,
or part of a batch update. In the case of a batch update, you can cancel the
Update with the CancelUpdate or CancelBatch method..
...."
che a quanto capisco....non capisco.....
:-)
ossia
 CODICE CHE NON VA!
Errori:
 If Err.Number <> 0 Then
 MsgBox CStr(Err.Number) & " : " & Err.Description, vbCritical, "Errore!!!"
    Cn.RollbackTrans
    Err.Clear
    MsgBox "Attenzione, salvataggio non eseguito", vbCritical
 End If
dopo la lettura di questo pezzettino....e ricordiamocelo bene SOLO per
ADDNEW (per questo lo stiamo provando è! per le modifiche non l'ho
provato...
e resta il fatto che le transazioni per annullare un inserimento io non le
userei!...almeno in questo caso...ma potrebbe averci postato un pezzettino
ed il codice essere più complesso!
)
CODICE CHE VA!
Errori:
 If Err.Number <> 0 Then
 MsgBox CStr(Err.Number) & " : " & Err.Description, vbCritical, "Errore!!!"
   Rs_Record.CancelUpdate   ' <------------NOTARE QUI
    Cn.RollbackTrans
    Err.Clear
    MsgBox "Attenzione, salvataggio non eseguito", vbCritical
 End If
scaricati il codice quando hai tempo javalab e divertiti a provare!
 che succede nel caso di una modifica invece che di un addnew?...mi sa che
esplode tutto? boh!


 End If
Ma se faccio un cancelupdate e poi faccio un rollback che senso ha?
Gią di suo il rollback dovrebbe annullare, anzi non dovrebbe far scrivere
niente in un database.
Perlomeno questo č quello che ho capito
Ne devo fare di strada prima di diventare un programmatore decente...  :)

 un ADO260.chm che uso moltissimo recitava
io mi ricordo che qui avesse segnalato questo
http://ftp.gentoo.skynet.be/pub/ftp.microsoft.com/platformsdk/oct2000/common/Help/
che pero' ora da' errore.
nell'ftp ms non vedo la platformsdk, riprovero'.
poi mi aveva scritto di avere trovato il chm (che anch'io uso parecchio) in
un link che gli avevo mandato
http://docs.online.bg/
che direi vada ancora, ma notabene dev'essere un 286 con un modem a 9k :)
ciao, a.