Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2012
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Problemas con autocommit con Zeos

Bien ahí Casimiro, sorry por no abrir otro hilo.
no tuve ninguna respuesta al tema, qué raro.
Solo a mi me pasa eso?. No creo, pero bueno.
Saludos
Responder Con Cita
  #2  
Antiguo 18-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, no entiendo bien la pregunta, pero lo que explicas no tiene mucho sentido, principalmente dos cosas:
- Lo de las PK y la tecla de destrucción masiva de los clientes
- Registros huérfanos

Por lo que imagino que la base de datos adolece de algunos fallos en su estructura, o sea, que no está bien hecha.

¿Puedes ampliar el tema?, gracias
Responder Con Cita
  #3  
Antiguo 18-06-2012
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Aclaración

Si si, al encontrarse error de las PK denota una falla en las estructuras de la BD, por ej no contemplaba la posibilidad
de abonar un comprobante de Venta con más de un mismo medio de pago repetido, por ej. con tres cheques, sí con 4 medios
de pagos distintos como máximo que es lo que la AFIP Argentina permite como maximo.
La PK era tipo_comprobante, nro_comprobante, id_medio, al repetirse el id_medio en la insercion aborta.

El tema es que inserta la cabecera del comprobante bien, de ahi continua a los items y bien, luego al insertar los medios
de pago aborta por el tema que te mencionaba recien, pero ya quedaron los registros anteriores en las otras tablas,
hago un rollback en caso de detectar algun error, pero no funciona.
Antes de iniciar cualquier inserción tengo un starttransaction, luego un commit al finalizar y/o rollback en caso de error
en el try, pero el objeto connection ya tiene la propiedad autocommit en true, si la pongo en false saltan errores por
cualquier otro motivo en otros formularios que funcionan bien ya que actualizan una sola tabla.

De ahi viene mi pregunta en como manejar el tema del autocommit, espero se entienda mejor ahora.
Como manejarlo en caso de actualizaciones masivas y que el rollback funcione como debería ser antes cualquier falla
en un stored procedure de inserción.

Saludos y desde ya muchas gracias
Responder Con Cita
  #4  
Antiguo 18-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El autocommit siempre lo tengo deshabilitado, prefiero controlarlo yo mismo, normalmente hago commit en el afterpost del dataset.
Responder Con Cita
  #5  
Antiguo 18-06-2012
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Gracias!

No manejo dataset actualizables, todas mis actualizaciones son a travez del gestor de BD
en este caso MySQL por medio de Stored Procedures.
Voy a estudiar más el tema del autocommit en false entonces y ver bien el por qué falla
en determinados lugares.
Muchas gracias por tu tiempo y dedicación
Walter
Responder Con Cita
  #6  
Antiguo 18-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡Ah!, entonces es distinto, todo lo que ocurre dentro del 'stored procedure' ocurre en una transacción, pero la verdad es que desconozco cómo funciona mysql en ese aspecto, por lo que tengo leído/escuchado, con mysql hay distintas formas de usar la base de datos, y el método "estandar" no contempla procedimientos, triggers, etc.
Así que ahí no puedo ayudarte mucho, a ver si alguien "más puesto" te puede ayudar.
Responder Con Cita
  #7  
Antiguo 18-06-2012
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Si es muy cierto eso, es un tema adoptado hace no mucho tiempo en mysql, ya que las primeras versiones
no lo incluian, nose si vendrá por el motor el problema pero dudo, supongo que por zeos viene la mano.
Y bueh será cuestión de investigar más. Pero claro es más facil preguntar a otros que ya hayan pasado por
lo mismo que ponerse a investigar, vi unos foros en inglés de Zeos, pero redundan mucho y no dan solucion
clara al tema.
Nuevamente gracias!
Responder Con Cita
  #8  
Antiguo 18-06-2012
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El autocommit siempre lo tengo deshabilitado, prefiero controlarlo yo mismo, normalmente hago commit en el afterpost del dataset.
Si claro, no me di cuenta de que no efectuas un StartTrasanction entonces, solo un Commit, es otra manera de actualización que efectuas, pero hablabamos de lo mismo
realmente.
Muchas gracias a todos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
En FIBPlus uso de autocommit El_Raso Conexión con bases de datos 3 01-09-2011 00:10:51


La franja horaria es GMT +2. Ahora son las 01:00:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi