Ayuda con transacciones

buenos días necesito de tu ayuda trabajo con visual 2008 y access 2007
(mas adelante lo voy a actualizar con sql 2008) por favor estoy con este
tema una semana y no encuentro la solución para mi problema te explico
al guardar ciertos datos actualizo e ingreso datos a diferentes tablas y
para hacer eso quiero utilizar transacciones no encuentro ejemplos para
este tema de esta manera ingreso datos y actualizo: en una clase
mantenimiento

Public Function insertar(ByVal sql As String) As Boolean
Con.Open()
comando = New OleDb.OleDbCommand(sql, Con)
Dim i As Integer = comando.ExecuteNonQuery
Con.Close()
If i > 0 Then
Return True
Else
Return False
End If
End Function

Public Function actualizar(ByVal tablax As String, ByVal campos As String, ByVal condición As String) As Boolean
Con.Open()
Dim sql As String = "update " & tablax & " set " & campos & " where " & condición
comando = New OleDb.OleDbCommand(sql, Con)
Dim i As Integer = comando.ExecuteNonQuery
Con.Close()
If i > 0 Then
Return True
Else
Return False
End If
End Function

Private Sub BtGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtGrabar.Click
If MessageBox.Show("ESTA SEGURO DE GRABAR", "CONFIRME", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
Try
Dim campos As String = " consumo= '" & COBRANZAS.DGVvisordepositos.SelectedRows(0).Cells(7).Value & "' , saldo= '" & COBRANZAS.DGVvisordepositos.SelectedRows(0).Cells(8).Value & "'"
'aqui ingreso datos a la tabla depositos
claseobcobranzas2.actualizar("DEPÓSITOS", campos, "iddeposito = '" & COBRANZAS.DGVvisordepositos.SelectedRows(0).Cells(0).Value & "'")
For i = 0 To DGVvisorpendientes.Rows.Count - 1
Dim campos2 As String = " estado= '" & DGVvisorpendientes.Rows(i).Cells(5).Value & "' , pendiente= '" & DGVvisorpendientes.Rows(i).Cells(12).Value & "' , totalcobrado= '" & DGVvisorpendientes.Rows(i).Cells(13).Value & "'"
If DGVvisorpendientes.Rows(i).Cells(14).Value > 0 Then
'aqui ingreso datos a la tabla detalledepositos para saber que facturas cancelo este depositos
Dim sql As String = "insert into DETALLEDEPOSITOS values ('" & COBRANZAS.DGVvisordepositos.SelectedRows(0).Cells(0).Value & "' , '" & DGVvisorpendientes.Rows(i).Cells(0).Value & "' , '" & DGVvisorpendientes.Rows(i).Cells(14).Value & "')"
claseobcobranzas2.insertar(sql)
'aqui actualizo la tabla factura como est,pendiente ,cobrado
claseobcobranzas3.actualizar("FACTURAS", campos2, "idfactura = '" & DGVvisorpendientes.Rows(i).Cells(0).Value & "'")
End If
Next
MsgBox("SE GRABO CORRECTAMENTE", MsgBoxStyle.Information, "CONFIRMACION")
Call FILTRAR2()
Call COBRANZAS.FILTRAR()
Me.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
 

como vera necesito hacer la tres transacciones si o si .mil gracias

1 Respuesta

Respuesta
1

Como Access como motor de base de datos no soporta transacciones, tienes que hacerlo desde .NET

Para eso te dejo unos links.

http://msdn.microsoft.com/es-es/library/6yx87ys5.aspx

http://msdn.microsoft.com/es-pe/library/system.data.oledb.oledbtransaction(v=vs.100).aspx

Si tienes dudas me lo haces saber.

gracias por la aclaración voy a tener que migrarlo a sql la base de datos gracias.una consulta también estoy en el tema de los reportes en internet hay muchos ejemplos pero quiero implementar a mi sistema el mas optimo que pueda reportar muchos datos y que sea rapido me puedes mandar una pagina por favor que explique detalladamente ya que en esto soy nuevo gracias

No trabajo con reporteadores, todos son malos o tienen defectos.

Lo mejor es darle al cliente una zona donde puede elegir que campos usar, que filtrar y le mandas el resultado a un Excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas