Sto provando ad inserire in un'applicazione VBScript/ASP le transazioni e ho riscontrato alcuni problemi.
Il database è Access ed è bello pieno 9Mb.
L'applicazione deve funzionare in locale, con due pc collegati e IIS.
I primi problemi erano sorti quando aprivo contemporaneamente nei due pc la connessione al database (file già in uso), e ho risolto con un "on error resume next".
Poi tutto sembra funzionare, ma quando dai due pc provo a scrivere nel db,
Uno dei due pc, va avanti, l'altro... rimane a caricare.. per Troppo Tempo, e poi ovviamente si perde l'informazione da inserire nel db...
Infatti non credo faccia il conn.RollBack (vedi sotto), poichè non trovo nulla dentro la variabile "errore".
/* Quel Troppo Tempo sarebbe fallimentare per quanto mi riguarda..*/
Colpa delle connessioni non chiuse (che ci si scorda di solito)?
Colpa di access? Dell'eccessivo peso (9 mb è tanto?)?
Per gestire le transazioni ho usato questo codice ovunque ci sia richiesta scrittura (UPDATE, DELETE,INSERT) nel db.
Grazie per l'aiuto.
codice:Set conn= Server.CreateObject("ADODB.Connection") conn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("gestione.mdb") sqlDO = "INSERT INTO DettOrdini (Nome) VALUES ("& nome &")" conn.BeginTrans conn.execute(sqlDO) If conn.Errors.Count > 0 Then ' errori: annullo tutto conn.RollBackTrans errore = "Errore : "& conn.Errors.Item(0) & ".Clicca Indietro e riprova." Else ' tutto bene, porto avanti e concludo la transazione conn.CommitTrans End If

Rispondi quotando
