Eliminar Controlado rompe Servidor


([N4] ns) #1

Buenas,

a la hora de borrar un registro de un fichero de Entidades si la tiene históricos, por ejemplo está en un Albarán , el programa me devuelve un mensaje "Error al eliminar ficha: Entidades" y ya se queda colgado el servidor y en consecuencia Vdevelop, VAdmin y VClient.

 

Despues de volver a iniciar el servidor manualmente en VAdmin en el apartado "Mensajes Sistema" puedo observar que el error se produce por que la Entidad que intento borrar tienen historicos, pero no se como poder controlarlo y sobre todo como evitar la parada del servidor.

 

Adjunto captura de pantalla de log de Mensajes Sistema de VAdmin

 

Gracias.

[attachment=8415,842]


([N4] ns) #2

A nadie le ha pasado? He buscado y buscado en el foro pero no veo nada parecido....

 

Como se puede controlar? No debería Velneo dar un mensaje de que hay Historicos y no permitir la eliminación simplemente?

 


([N1] mariorafaelvargas) #3

Te cuento como lo hago yo :

 

- En la tabla Entidades defino un campo numerico #TIENEALBARANES

- Desde la tabla Albaranes actualizo Acumulando con 1 (uno) hacia Entidades #TIENEALBARANES

- En el Boton de Eliminar Registro en la "Condicion de Activo" defino la condicion #TIENEALBARANES=0

 

En resumen... Si tiene albaranes el boton de ELIMINAR esta Activo o Invisible.

 

Estaba queriendo hacer lo mismo a traves de "procesos" pero no me salio.

 

Es mi humilde solucion... quizas no tan elegante en Mensajes. En mi caso yo lo he defino como #TIENEPLURALES

 

Atentamente

 

Mario Rafael Vargas

Peru

 

 





([N1] Velasco) #4

Buenas tardes.

He hecho una prueba.

En una tabla de Bancos con un histórico de Sucursales he puesto en el botón de Borrar el comando eliminar controlado.

Como no tengo ningún proceso que me borre el histórico me da el mensaje: error al eliminar ficha de: bancos

Pero no se me ha quedado colgado ni el vClient, el vAdmin, ni nada. Deberás revisar la tablas, los datos o nosé.

Lo normal si quiero borrar una tabla con históricos sería crear un evento Anterior a la baja que cargue los históricos y los borre previamente.

Un saludo.

 

 


Jorge Velasco Fernández

jvelasco@theseedsc.com

www.theseedsc.com


(JuanJex) #5

Otra manera la hago así el boton eliminar llama un evento:

- Cargo Lista(,,,) y lo ubico por un indice.

- Selecciono ficha x posicion (1) --en mi caso siempre lo ubico por ese indice UNICO

- Leer la ficha seleecionada -estos es importantisimo sino no te ubica en el registro

- Eliminar Ficha seleccionada

Y AQUI VIENE EL TRUCO. ejecuto de nuevo la busqueda y si no esta es por q no lo elimino por q tiene historicos.

- Cargo Lista(,,,) y lo ubico por un indice.

<div>- if Listsize<>0 </div>
<div>  - Mensaje no se borro</div>
<div>- Else --continuar con tu codigo.</div>
<div>
</div>
<div>Espero te sirva, esto lo hago en un evento por q ademas necesito hacer ciertas cosas antes de eliminar, pero la solucion de Rafael es perfecta tbm si tu eliminacion no requiere tanta complejidad.</div>
<div>Pero si te doy un tip tambien en caso de crear un nuevo registro, que lo manejas por codigo y no solo con el aceptar, por ejemplo tabla entitades, tabla users pero yo creo el user y por codigo meto la entidad, ya despues el user completara sus datos ok?, entonces que pasa en user tengo el campo nickname indexado con clave unica, el campo passwor tbm, etc quizas mas campos que voy definiendo en la base de datos o que podria definir despues inclusive, que pasa que velneo cuando das de alta y detecta que un campo que tiene clave unica y se esta tratando de grabar nuevo se repite, simplemente no lo graba pero no te avisa, pero lo puedes controlar de esta manera:</div>
<div>
</div>
<div>- Crear ficha en memoria(users)</div>
<div>- modificar campo1, valor1</div>
<div>- modificar campon, valorn</div>
<div>- pedir formulario (en mi caso por q lo lanzo desde un boton de un formulario con grilla)</div>
<div>- Procesar ficha en memoria () AQUI ESTA LO IMPORTANTE</div>
<div>  -Ya existe en alguno de sus indices de clave unica(ok,message)</div>
<div>  - if (ok)</div>
<div>    -mensaje(message)</div>
<div>  - else</div>
<div>    -Alta de ficha.</div>
<div>
</div>
<div>Slds.</div>
<div>Juanjo Moreno </div>
<div>Peru.</div>