Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Perdita della connessione
mercoledì 17 novembre 2004 - 09.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sarto76
Profilo
| Junior Member
102
messaggi | Data Invio:
mer 17 nov 2004 - 09:56
ciao a tutti io utilizzo il DB mysql ed ho creato delle transazioni con l'iggetto Transation.
La mia domanda è la seguente: se mentre sto eseguendo un insert mi parte la connessione al server (o il server si spegne) come faccio a fare il rollback dei dati visto che sono già sul server ma questo non è raggiungibile? Che altra soluzione potrei adottare?
Grazie mille a tutti
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mer 17 nov 2004 - 10:41
prima di tutto te prima di fai l'insert o l'update o altro devi attivare la connessione al database, poi devi eseguire questo esempio di codice che ti posto in quanto se si genera un'errore non ti crea problemi a fare il rallback:
Dim cmd as New MysqlCommand()
Dim mysqltrans As MySqlTransaction 'dichiari la transazione
mysqltrans = database.BeginTransaction() 'partenza della transazione
try
cmd.Transaction = mysqltrans
Dim sql as string
sql="Insert Into nome_tabella (campo1,campo2...) Values('1','2'...)
cmd = New MySqlCommand(sql, database)
cmd.ExecuteNonQuery()
mysqltrans.Commit()
catch
Try
mysqltrans.Rollback()
Catch ex As Exception
If Not mysqltrans.Connection Is Nothing Then
MsgBox(ex.ToString, MsgBoxStyle.Exclamation)
End If
End Try
End Try
Ciao
Fabio
sarto76
Profilo
| Junior Member
102
messaggi | Data Invio:
mer 17 nov 2004 - 15:46
a me capita la seguente cosa. Io devo fare più di un insert nella stessa transazione Quando eseguo il comando ExecuteNonQuery mi scrive i dati nel database, quindi se perdo la connessione entra nel catch, ma non riesce ad eseguirmi il rollback perchè la connessione non è attiva.
Non riesco a capire bene...credo di non essere in chiaro al 100%
Grazie mille ciao Massimo
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mer 17 nov 2004 - 17:08
Se fai caso al codice che ti ho postato vedrai che se nell'insert si genera un errore il programma passa alla funzionje catch che all'inizio vi è l'operazione di rallback che effettuta.
Ciao
Fabio
sarto76
Profilo
| Junior Member
102
messaggi | Data Invio:
ven 19 nov 2004 - 12:36
grazie trinity questo l'ho visto, forse non mi sono spiegato bene. Nel tuo codice riesce a fare il rollback se la connessione non c'è più?
Nel mio script quando faccio executeNonQuery mi mette i dati in DB sul server. Ma se non ho più il server come faccio a fare un rollback sul database sul server?
Grazie e scusa ma non sono molto pratico di connessioni...
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
lun 22 nov 2004 - 19:45
allora ti consiglio di fare un controllo degli errori con il try..catch...per vedere se la connessione è attiva oppure no un esempio:
db.State.Open = ConnectionState.Open 'significa che la connessione è aperta e attiva
Ciao
Fabio
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !