Newsgroup: it.comp.appl.access
Titolo: ADO: transazioni con le form

Innanzitutto un ben ritrovati a tutti.
Dopo l'ultimo raduno ho latitato, non ho scuse (se non che
ho cambiato casa, citta' e lavoro); ho 14000 messaggi
arretrati ma non sarebbe la prima volta, per cui ora mi
rimbocco le maniche :-)
Parto con la domanda:
vorrei provare ad usare le transazioni per gestire
l'annullamento delle modifiche in una form master-detail:
quando provo ad assegnare alla form il recordset aperto in
un'apposita connessione, questa mi diventa di sola lettura.
In pratica, se la form ha come origine la tabella Fornitori,
tutto ok; se faccio form.recordset = rst, dove rst e' aperto
sulla stessa tabella, mi dice che il recordset non e'
aggiornabile.
Qualcuno ha avuto le stesse esperienze?
Piu' in generale, qualcuno ha provato a gestire le
transazioni con le form associate?
Bai
--
Lorenzo Coronati
--
<<cazzo ma come siamo "simpatici " eh ?>>
(Enrico Virginio, 17/03/2002)
--

 transazioni con le form associate?
Ciao Lorenzo, in effetti è così con A2K, nel senso che l'Help
stesso indica questo modo di gestione del RS in una Form.
Credo , quindi sia un pò difficile poter gestire con le Tranzazioni
la cosa, a meno di non lavorare in parallelo sul RS ed effettuarle
su quest'ultimo, ma mi pare poco pratica....!!
Saluti.
Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

su quest'ultimo, ma mi pare poco pratica....!!
Eppure non avevo letto niente di simile sull'help (che
peralro odio, quello del 97 era 2000 volte meglio)
Cmq, che altro modo c'e' secondo te (e secondo gli altri ;-)
per gestire gli annullamenti su form master detail?
TIA


 Lorenzo Coronati
Su form Associate Master è effettivamente una cosa non semplice, io
ho in un caso effettuato una Dissociazione temporanea dei controlli
dopo aver inserito nella proprietà TAG l'origine controllo, e, in
caso di Modifiche invece di lavorare con Form non ASSOCIATE lavoravo
con Form(Associata) e Controlli non associati.
Ovviamente prima di Ripristinare l'origine controllo dei Controlli
faccio tutte le verifiche del caso.
Io in realtà ho realizzato un Modulo di classe proprio per questo scopo
che gestisce UNDO, e inserimenti(ADDNEW) ecc....!!!
Se credi ti possa essere utile per capire la tecnica che ho usato
lo invio....!!!
Ciao.
Alessandro./Alex


lo invio....!!!
Beh, direi che mi interessa proprio, e credo non solo a me!
E cmq, ho capito il meccanismo dei ctl non associati, ma per
le sottomaschere detail come fai?


 
In effetti sulle Sub momentaneamente non va, ho provato a fare
un sistema di Ricorsione, ma è fallito miseramente.....!!!
Sul SC è stato inserito un mio DEMO che utilizza questa tecnica,
non è realizzato con il Modulo di Classe, ed è un pò vecchiotto e
alquanto intrecciato, ma la tecnica è sempre la stessa....!
Prima di inviare il nuovo al SC volevo in effetti risolvere il
discorso SubForm, ma il tempo è tiranno....!!!
P.S. mi sono dimenticato di precisare che il tutto sfrutta
però in alcuni passi la Lib di DAO, ma è perfettamente sostituibile
con ADO.
Passate le Feste e rimesso in funzione il mio "LATTONE" a casa
ti invio la Classe con info....!!!
Ciao, buona Pasqua.
Alessandro./@Alex


 l'annullamento delle modifiche in una form master-detail:
cut
Ciao,
gia' tempo addietro qualcuno aveva sollevato il problema.
Mi permetto di entrare nel merito perche' mi domando, non e' piu' semplice
cancellare record e sottorecord che non vanno bene piuttosto che usare
complessi sistemi per annullare gli inserimenti?
D'altro canto le transazioni non sono fatte per le maschere ma per la
gestione di grossi aggiornamenti spesso in remoto, ecco perche' non ne e'
previsto l'uso li'.
Ciao,
Sib

 Alessandro./@Alex
Anche a me, grazie Alex.
Gilberto


 Gilberto
Spero non abbiate fretta, perchč ho avuto gravi problemi con l'HD
della Macchina, formattato.....!!!!!!! zzo....!
Quindi devo recuperare il tutto da un'altro PC....!
Appena posso arrivo...!
Alessandro.


"Sib" <si...@SPAMMiol.it> ha scritto nel messaggio
news:xMhq8.43083$pT1.1...@news1.tin.it...

mmmh... mi sto rompendo le corna in questi giorni su problemi simili.
Credo tutto nasca dall'abitudine dei programmi normali (videoscrittura,
grafica, ecc.) che ti fanno modificare ciò che vuoi poi, se non salvi, tutto
torna come prima. Le transazioni, come scollegare e ricollegare le form,
alla fine servono a questo (con grossi rompimenti di c...). Perciò mi attira
moooooolto ciò che scrivi. Hai voglia di fare un esempietto esplicativo di
come risolvi tu?  Metti un pulsante Annulla che in realtà non annulla ma
cancella il record e relativi sottorecord? O fai diversamente?
Grazie Paolo

 "Sib" <si...@SPAMMiol.it> ha scritto nel messaggio

Molto piu' semplice ;-)
Io uso l'integrita' referenziale con aggiornamenti ed eliminazioni a catena.
Fatto questo se elimini il record padre (tasto canc) elimini tutti i figli.
Se ti fa paura l'eliminazione a catena puoi mettere un messaggio di avviso
su eliminazione.
Comunque per quanto riguarda l'origine di questa abitudine sono di opinione
diversa,
l'esperienza mi ha insegnato che sono gli ex utenti di programmi dos a fare
grande richiesta di questa funzione. Cio' e' docvuto al fatto che in db3 e
simili il caricamento dei record nelle tabelle avviene su apposita conferma.
Questa pero' non e' da considerarsi come una funzionalita' in piu', ma in
meno. Infatti per ottenere cio' che noi otteniamo con maschere e
sottomaschere con access era necessario scrivere svariate righe di codice
per gestire l'intero flusso di lavoro e sarebbe stato scomodo attivare
appositamente una routine per salvare ogni volta il record inserito.
Sib

complessi sistemi per annullare gli inserimenti?
Eh vabbe', ma io parlo di modifiche ai record, cogli
inserimenti sono capaci tutti ;-)


 inserimenti sono capaci tutti ;-)
mumble mumble...
cosi' acquista certamente migliore giustificazione.
Io pero' sono sempre contrario a queste operazioni perche' i dati
resterebbero comunque "sospesi" fino al salvataggio, il che ne aumenta la
vulnerabilita'.
Ad ogni modo io farei cosi':
Due tabelle di appoggio gemelle a quelle vere contenenti i dati.
In inserimento o modifica cambio il recordset di maschera e sottomaschera
impostandoli sulla tabella temporanea.
All'Ok, se l'itente conferma trasferisco i dati sulle tabelle effettive
Svuoto quelle temporanee
reimposto maschera e sottomaschera sulle tabelle originali.
Semplice, funzionale, sicuro.
E non si rischia di prendere le malattie.
Sib

Semplice, funzionale, sicuro.
E infatti ho sempre fatto cosi' con A97 e dao, solo che ora
con msde mi fa un po' strano gestire tabelle di appoggio
condivise e persistenti, con l'utente in chiave...
IMO deve esserci il modo di inglobare un paio di form in una
transazione, pensa che pulito e lineare sarebbe...
Bai


 transazione, pensa che pulito e lineare sarebbe...
...eeee nnNO!
Nelle form niente transazioni!
Se usi ADO puoi usare una maschera legata a un recordset salvato su disco in
formato XML o nativo fare quello che ti pare e poi usare il comando
UpdateBatch per trasferire le modifiche o annullare tutto cancellando il
recordset.
Sib


Ok, grazie. Molto utile anche la continuazione del thread con Lorenzo
Ciao Paolo

recordset.
Ora mi cerco sull'help quello che hai scritto e poi ti
faccio sapere.
Ma tu lo usi questo metodo?
--
Lorenzo Coronati
--
<<il mondo si divide in due: gli gnucconi 
e LE TESTE DI SCROTO, non credo proprio 
di appartenere alla prima>>
(Riccardo Belzani, 22/2/2000)
--

Ma tu lo usi questo metodo?
Vabbe', ho capito che io e l'help di A2K non ci intendiamo
:-(
Sara' ora che mi compro un buon libro sulla programmazione
ado?
Magari qualcosa che affronti per benino le tematiche di
concorrenza, protezione, repliche...
Che mi consigli?
-- 
Lorenzo Coronati
--
<<Consiglio:
Siate un pò piu professionali.>>
(Marco Dell'Oca, 1/2/2001)
--

 Che mi consigli?
hehehe,
Of course il testo che ho recensito sul sito comune, e' quello la mia fonte
di informazioni su ADO.
Programmare MS Access 200 (77 carte)
oltre 1000 pagine
Un errore ogni 20 pagine ma dotato di un cd con il pdf del testo originale
in inglese (molto piu' comprensibile della traduzione italiana).
Per rispondere alla tua domanda di prima, no non ho mai usato questo
sistema, ma solo perche' mi devo ancora "staccare" da DAO.
Ciao
Sib
--
qualita.assicurazione sul news-server 
www.cerrinet.it
Il newsgroup sulla qualita'

Programmare MS Access 200 (77 carte)
Quanto di cio' che scrivono per AXP si applica ad A2K?
-- 
Lorenzo Coronati
---
<<P.S. Mi scuso con il NG per la polemica, ma proprio 
non digerisco questo atteggiamento da professorini di 
provincia, che alternano risposte saccenti date con 
sufficienza a prese in giro da terza elementare.>>
(Giovanni D'Orazio, 1/11/2000)
---

 Quanto di cio' che scrivono per AXP si applica ad A2K?
una discreta parte direi se consideri che per impostazione predefinita AXP
crea e lavora su database A2000.
certo potrebbero esserci leggere differenze, soprattutto per quanto riguarda
la disponibilita' di eventi particolari e/o funzioni molto specifiche, ma
poiche' questo libro e' dedicato soprattutto a ADO, direi che va comunque
bene.
Non so se esista la versione per A2000.
Sib