Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con transaccion desde VB .NET y MySQL

Estas en el tema de Problemas con transaccion desde VB .NET y MySQL en el foro de .NET en Foros del Web. Que tal gente del foro, desde hace algunos dias eh tenido algunos problemas al tratar de realizar una transaccion desde una aplicacion que estoy desarrollando ...
  #1 (permalink)  
Antiguo 20/12/2012, 22:24
Avatar de omar190  
Fecha de Ingreso: septiembre-2008
Mensajes: 191
Antigüedad: 13 años, 2 meses
Puntos: 4
Problemas con transaccion desde VB .NET y MySQL

Que tal gente del foro, desde hace algunos dias eh tenido algunos problemas al tratar de realizar una transaccion desde una aplicacion que estoy desarrollando en visual .net 2010 y mysql, el error que me marca es Fatal error encountered during command execution. cuando trato de hacer uso de una variable de usuario algo asi SET @id=0; o SELECT @ID:=LAST_INSERT_ID();

Si omito estas instrucciones todas las demas instrucciones son insertadas correctamente, lo que trato de hacer es tras insertar la primera instruccion recuperar el id porque de este id dependen las demas sentencias de insercion, este mismo codigo lo eh usado en php y ahi no eh tenido ningun problema, este es el codigo que estoy usando para realizar la transaccion

Código vb:
Ver original
  1. Public Function InsertaSQLs(ByVal strServidor As String, ByVal ParamArray strSQLS() As String) As Boolean
  2.         Dim mysqlCadena As String
  3.         Dim i As Integer
  4.  
  5.         Try
  6.             mysqlCon = New MySqlConnection(strServidor)
  7.             mysqlCon.Open()
  8.             mysqlTrans = mysqlCon.BeginTransaction
  9.  
  10.             For i = 0 To strSQLS.Length - 1
  11.                 mysqlCadena = strSQLS(i)
  12.                 If mysqlCadena IsNot Nothing Then
  13.                     mysqlCmd = New MySqlCommand(mysqlCadena, mysqlCon)
  14.                     With mysqlCmd
  15.                         .CommandType = CommandType.Text
  16.                         .Connection = mysqlCon
  17.                         .Transaction = mysqlTrans
  18.                         .ExecuteNonQuery()
  19.                     End With
  20.                 End If
  21.             Next
  22.             'Si todo sale bien se acepta
  23.            mysqlTrans.Commit()
  24.             binsertaSQLs = True
  25.         Catch ex As MySqlException
  26.             binsertaSQLs = False
  27.             mysqlTrans.Rollback()
  28.             logsherr.WriteLog("HerrNet_Datos", "binsertaSQLs", ex.Number, ex.Message)
  29.         Catch ex As Exception
  30.             binsertaSQLs = False
  31.             mysqlTrans.Rollback()
  32.             logsherr.WriteLog("HerrNet_Datos", "bInsertaSQLs", Err.Number, ex.Message)
  33.         Finally
  34.             If Not mysqlCon Is Nothing Then
  35.                 If mysqlCon.State = ConnectionState.Open Then
  36.                     mysqlCon.Close()
  37.                 End If
  38.                 mysqlCon.Dispose()
  39.             End If
  40.             If Not mysqlTrans Is Nothing Then
  41.                 mysqlTrans.Dispose()
  42.             End If
  43.         End Try
  44.     End Function

y estas son las sentencias donde me lanza el error

Código:
strSQLs(0) = "SET @ID=0;"
strSQLs(1) = "INSERT INTO establecimiento SET Nombre=''......
strSQLs(2) = "SELECT @ID:=LAST_INSERT_ID();"
lo que estoy haciendo es definir la variable que usare, despues realizo la insercion en esta insercion el id es autoincremental es por eso que despues necesito rescatarlo ya que despues de esta insercion bienen otras donde ya no puedo hacer uso de last_insert_id porque son inserciones con autonumericos tambien, por eso necesito rescatar primero el id, espero alguie me pueda ayuda se los agradeceria
  #2 (permalink)  
Antiguo 21/12/2012, 02:26
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 13 años, 10 meses
Puntos: 606
Respuesta: Problemas con transaccion desde VB .NET y MySQL

Has probado a ejecutar las instrucciones SQL de forma manual en MySQL?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 21/12/2012, 13:11
Avatar de omar190  
Fecha de Ingreso: septiembre-2008
Mensajes: 191
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Problemas con transaccion desde VB .NET y MySQL

Finalmelnte logre resolver este error que lanzaba al ejecutar el grupo de sentencias, no es problema de las sentencias ni del codigo que las ejecuta, el problema biena a darse con la cadena de conexion, lo que hise fue colocar en la cadena de conexion la indicacion de que se usaran variables de usuario de esta forma funciono todo perfectamente, buscando un poco mas en internet di con esta pagina que explica sobre las cadenas de conexion y los valores que se pueden agregar en la misma para diferentes situaciones, le comparto el enlace, http://www.connectionstrings.com/mysql, espero a alguien mas le pueda ser de ayuda estas explicaciones que esta en la pagina.
  #4 (permalink)  
Antiguo 08/11/2021, 07:59
 
Fecha de Ingreso: septiembre-2004
Mensajes: 1
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Problemas con transaccion desde VB .NET y MySQL

Excelente, gracias amigo, resolví igual mi problema.



La zona horaria es GMT -6. Ahora son las 10:10.