Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Guardar En Varias Tablas Con Transacciones
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Guardar En Varias Tablas Con Transacciones 
 
Hola espero me puedan ayudar, Cual es la forma de guardar en varias tablas a la vez con transacciones y calcelar la transaccion en caso de error?

Se que es con comming y roolback.

He intentado hacerlo buscando en por la red pero no he podido hacer que guarde eficientemente.

por ejemplo:
quiero insertar en dos tablas datos similares

Global.cn.Begin
  hresult = Global.cn.Create("comprasdetalle")
  hresult2 = Global.cn.Create("tmpcompras")
  IF hresult.Count > 0 THEN
      FOR i = 0 TO GridView1.Rows.Count - 1
        hresult!folio = Folio.Text
        hresult!piezas = GridView1[i, 0].text
        hresult!clave = GridView1[i, 1].text
        hresult!descrip = GridView1[i, 2].text
        hresult!precio = Global.Formatx(GridView1[i, 3].text)
        hresult!subtotal = Global.Formatx(GridView1[i, 4].text)
        hresult.Update()
      NEXT
    
    si aquí ocurre un error, en la tabla comprasdetalle ya se han insertado los registros.
    No se deberian insertar hasta que no se haga el comming o me equivoco?
    
    hresult1 = Global.cn.Create("compras")
    hresult1!folio = Folio.Text
    hresult1!fecha = tfecha2.Text
    hresult1!proveedor = Text3.Text
    hresult1!nproveedor = Label7.Text
    hresult1!descuento = Global.Formatx(TextBox2.Text)
    hresult1!subtotal = Global.Formatx(Tsubtotal.Text)
    hresult1!iva = Global.Formatx(Tiva.Text)
    hresult1!piezas = GridView1.Rows.Count
    hresult1!total = Global.Formatx(Ttotal.Text)
    hresult1!empleado = Global.user
    hresult1.Update()
    Global.cn.Commit()
 



 
última edición por pixel el Jueves, 21 Julio 2011, 00:49; editado 1 vez 
pixel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar En Varias Tablas Con Transacciones 
 
Citar:

si aquí ocurre un error, en la tabla comprasdetalle ya se han insertado los registros.
No se deberian insertar hasta que no se haga el comming o me equivoco?


Ese tema es, hasta donde yo sé, bastante delicado y depende de la base de datos que uses, primero, de la cantidad de registros que hayas tratado en la conversión después, del tamaño de los ficheros temporales asignados a la base de datos, de la carga de trabajo de la misma, etc. etc.

El problema no es si deberían estar grabados en la base de datos o no, que sí deberían, sino si están marcados como "recuperables" o no en el sistema de transacciones. Cuando tú dices .update, el registro, en principio queda grabado. Si ocurre un error, es cosa tuya el controlarlo y llamar al Rollback (no roolback)-cosa que no veo en tu código que hagas-, que sería el encargado de devolver las cosas al punto anterior al .Begin. Si no hay error controlado la transacción se dará por válida cuando ejecutes un .Commit (no comming) o cuando cierres la conexión la base de datos.

La única manera de estar seguro es haciendo pruebas en tu base de datos con la configuración que tenga establecida.


Suerte.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar En Varias Tablas Con Transacciones 
 
ok gracias, por tu tiempo y tu comentario, creo que después de hacer tantas pruebas me di cuenta que era por la base de datos debe ser innoDB.
 



 
pixel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Error En El Manejo De Transacciones pixel Bases de Datos 5 Jueves, 29 Julio 2010, 15:35 Ver último mensaje
jguardon
No hay nuevos mensajes Mostrar Varias Tablas En Grid pittusa Bases de Datos 2 Lunes, 02 Agosto 2010, 11:17 Ver último mensaje
ahtonio
No hay nuevos mensajes SQL: Como Hacer Consultas En Varias Tablas... jsbsan Bases de Datos 16 Jueves, 07 Agosto 2014, 05:28 Ver último mensaje
codificador
No hay nuevos mensajes Imprimir Varias Imagenes..... jsbsan Mundo Linux 3 Jueves, 08 Diciembre 2016, 11:27 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron