Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Roolback fungerar inte

Postades av 2008-04-28 10:50:11 - Per Arne Olsson, i forum vb.net, Tråden har 8 Kommentarer och lästs av 1263 personer

Hej
Håller på med en komponent som ska hantera databas anrop mot MySql men jag kan inte få Rollback att fungera! Vad är felet på min kod?


Public Shared Function ExecuteTransaction(ByVal SqlArr As IEnumerable, ByVal connectionString As String) As String
'Dim i As Integer
Try
Using connection As New OdbcConnection(connectionString)
Dim command As New OdbcCommand()
Dim transaction As OdbcTransaction

' Set the Connection to the new OdbcConnection.
command.Connection = connection

' Open the connection and execute the transaction.
Try
connection.Open()

' Start a local transaction.
transaction = connection.BeginTransaction()

' Assign transaction object for a pending local transaction.
command.Connection = connection
command.Transaction = transaction

' Execute the commands.
Dim myEnumerator As System.Collections.IEnumerator = SqlArr.GetEnumerator()
While myEnumerator.MoveNext()
command.CommandText = myEnumerator.Current
command.ExecuteNonQuery()
End While

' Commit the transaction.
transaction.Commit()
Console.WriteLine("All records are written to database.")

Catch ex As Exception
Console.WriteLine(ex.Message)
' Try to rollback the transaction
Try
'transaction.Rollback()
command.Transaction.Rollback()

Catch
' Do nothing here; transaction is not active.
End Try
End Try
' The connection is automatically closed when the
' code exits the Using block.
End Using
Catch ex As Exception
'System.Windows.Forms.MessageBox.Show(ex.ToString)
End Try

End Function


/Per Arne


Svara

Sv: Roolback fungerar inte

Postades av 2008-04-28 11:03:47 - Johan Djupmarker

En vild gissning, OdbcConnection kanske inte har stöd för transaktioner? Jag har gjort samma sak med MySqlConnection och det fungerar fint. Finns det någon anledning till att du kör via ODBC?

/Johan


Svara

Sv:Roolback fungerar inte

Postades av 2008-04-28 11:21:39 - Per Arne Olsson

Hej
ODBC ska ha stöd för transaction. Min fundering är om det är något speciellt när man går mot MySql i stället för Microsofts egna produkter?

Jobbar du med VB.Net mot MySql?

/Per Arne


Svara

Sv: Roolback fungerar inte

Postades av 2008-04-28 12:58:20 - Andreas Lagerkvist

Lite tankar.
1. Notera att du har detta i ett try block. Så om det inte blir något fel så gör den ingen rollback.
2. Microsoft skriver här:
http://msdn2.microsoft.com/en-us/library/system.data.odbc.odbctransaction.rollback.aspx

The transaction can be rolled back only from a pending state (after BeginTransaction has been called, but before Commit is called). The transaction will be rolled back in the event it is disposed before Commit or Rollback is called.

Alltså titta så att det blir en exception innan Commit och efter BeginTransaction.

/Andreas


Svara

Sv:Roolback fungerar inte

Postades av 2008-04-28 13:13:25 - Per Arne Olsson

Hej
Felet/urhoppet uppstår i koden
"command.ExecuteNonQuery()"
för jag har tre frågor i en array och den tredje av dessa frågor innehåller ett fel skapat av mig för att kontrollera Roolback funktionen.

Någon som har fungerande kod mot MySql att dela med sig av?

/Per Arne


Svara

Sv: Roolback fungerar inte

Postades av 2008-04-28 13:30:14 - Johan Djupmarker

Det jag funderade på är om MySql-drivrutinen för ODBC har transaktionsstöd, jag vet inte hur det är där...

Jag har kört mycket MySql från .NET (C#) med transaktioner och det fungerar perfekt. Men jag använder Connector/NET för att kommunicera med MySql (http://dev.mysql.com/downloads/connector/net/5.1.html).

/Johan


Svara

Sv:Roolback fungerar inte

Postades av 2008-05-05 15:16:35 - Per Arne Olsson

Nytt försök med MySql Connector!
Jag får fortfarande inte roolback att fungera.

Koden:


Public Shared Function RunTransaction(ByVal SqlArr As IEnumerable, ByVal connString As String) As String
Dim myConnection As New MySqlConnection(connString)
myConnection.Open()

Dim myCommand As MySqlCommand = myConnection.CreateCommand()
Dim myTrans As MySqlTransaction

' Start a local transaction
myTrans = myConnection.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction
myCommand.Connection = myConnection
myCommand.Transaction = myTrans

Try
'************************
' Execute the commands.
Dim myEnumerator As System.Collections.IEnumerator = SqlArr.GetEnumerator()
While myEnumerator.MoveNext()
myCommand.CommandText = myEnumerator.Current
myCommand.ExecuteNonQuery()
End While
'************************
myTrans.Commit()
Catch e As Exception
Try
myTrans.Rollback()
Catch ex As MySqlException
If Not myTrans.Connection Is Nothing Then
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
" was encountered while attempting to roll back the transaction.")
End If
End Try

Console.WriteLine("An exception of type " & e.GetType().ToString() & _
"was encountered while inserting the data.")
Console.WriteLine("Neither record was written to database.")
Finally
myConnection.Close()
End Try
End Function 'RunTransaction


Har lagt in ett fel i den sista sql frågan som är laddad i arrayen så jag ska få rollback.
Roolback exekveras men datan finns fortfarande i databasen!

Något fel i koden eller?

/Per Arne


Svara

Sv: Roolback fungerar inte

Postades av 2008-05-05 16:39:48 - Johan Djupmarker

Har du transaktionsstöd i databasen? Vill minnas att MyISAM-tabeller inte har det... Det ska vara InnoDB om du ska kunna använda transaktioner.

/Johan


Svara

Sv:Roolback fungerar inte

Postades av 2008-05-06 08:59:51 - Per Arne Olsson

TACK SÅ MYCKET Johan!!

Jag konverterade tabellerna till InnoDB och nu fungerar roolback som det ska!

/Per Arne


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 726
27 958
271 751
443
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies