Ver Mensaje Individual
  #2  
Antiguo 27-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Me pierdo entre tanto código sin las etiquetas

Más allá del problema, hay varias cosas para mejorar en tú código. Hay muchas cosas que lo hacen muy difícil de leer, por ejemplo el como haces las comparaciones booleanas.

Código Delphi [-]
 If CondicionBooleana = True then

 // Sintaxis equivalente, más compacta y mucho más clara
 if CondicionBooleana then
 
 // Lo mismo sucede para comparar por falso

  if CondicionBooleana = False 
 
  if not CondicionBooleana then

Luego otro punto importantísimo es el manejo de excepciones. Veo bloques try-except en los que ocultas las excepciones; esto ocurre porque dejas el bloque except vacío. Créeme, es una muy mala idea. Podría estar ocurriendo algo malo y como lo ocultas, ni siquiera vos te puedes enterar del error. Te recomiendo que elimines estos bloques try-except en el cual no controlas las excepciones. Además como bonus le quitas nivel de sangría y complejidad al código, habiéndolo más fácil de entender

También veo que utilizas un condicional para verificar si los DataSet (tablas, query) están activos, y si no lo están, abrirlos. No es necesario preguntar. Con poner Active a True, el componente solo ya se encarga de verificarlo. También podes usar el método Open, es equivalente a poner Active a True

Todos estos consejos sean para mejorar el código, que está muy extenso y hace muchas cosas, y como ya dije, es complejo

Falta más información sobre el problema. Cuando hay un error, debes colocar en tú post en que línea (si es una excepción) y el mensaje. Si el error es de programación (datos inconsistentes, no hace lo que quiero, etc) deberías decirnos que sucede.

A simple vista pareciera que estas iterando, grabando los datos, pero el Post sobre las tablas lo haces una vez. Debes hacer una combinación de insert (o append) y post por cada registro que querés guardar. Para edit es igual
Responder Con Cita