FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
No se destruye mi aplicacion
Hola a todos
Tengo una aplicacion hecha en Delphi 6 con Paradox uso un DataModulo, trabajan varias maquinas con esta aplicacion, y se esta colgandose bastante cuando voy a la estacion donde se colgo la maquina donde se colgo - presiono CTRL+ALT+DEL veo en los procesos varios Textil.exe que es el nombre del ejecutable. Cuando los elimino por esa ventana del windows ya pueden ingresar, pero por lo general siempre no termina de grabar alguna registro, bueno aqui unos alcances del codigo: Para Grabar: Dm.MiTabla.Post; Dm.MiTabla.FieldValues['MiCampo'] := MiValor; Dm.MiTabla.Post y protejo este codigo con un try dentro de un bucle asi; lgraba := false while lgraba=false do begin try --- codigo para grabar --- lgraba := true; except lgraba := false end; end; -------- Para Crear Formularios y cualquier objeto MiForm := TForm.create(self); MiForm.ShowModal; MiForm.Free; -------- Ojala alguien pueda auxiliarme por que estoy con la presion de los que me contrataron y estoy un poco saturado. Gracias de antemano. Javier Villa. |
#2
|
||||
|
||||
Hola Javier
Cita:
tratará de entrar de nuevo en el ciclo y se volverá a repetir el cuento, no saldrá nunca. No te recomiendo que pongas el Guardar (post) de esa manera en el código (forzándolo con un while), cuando no pueda guardar se te colgará el programa, en vez de eso muestra un mensaje al usuario y cancela el guardado. Ah y otra cosa, los moderadores te agradecerán con el corazón que pongas el código delphi con sus respectivas etiquetas, para que se lea mejor. Saludos.
__________________
"En el siglo de la estupidez todas las casas comienzan por la fachada" (Fuckowsky) Planeta Insólito, La Pluma Inspirada |
#3
|
|||
|
|||
Por lo que veo estas utilizando un ciclo para decirle al usuario que grabe la información a pesar de que exista un error en la inserción de la información... creo yo, la verdad es que ando un poco falto de practica en ese aspecto, que si ya existe un error porque el sistema no pudo grabar la información, la operación se queda atrapando la tabla o el registro que acualizaste, lo que provoca que nadie pueda acceder a ella hasta que éste recurso sea liberado por la operación, provocando así un dead. Quizas sea por eso que los demás usuarios no puedan trabajar.
Al hacer un post lo único que haces es enviar la actualización a memoria pero a veces, y a mi me pasaba con frecuencia, cuando utilizas POST da la apariencia de que se actualiza la información pero al reiniciar el equipo o finalizar el programa y vuelves a buscar el mismo registro te das cuenta de que no fue así. Por eso es mejor cambair el POST por un commit. Lo que hace el commit es que todas las operaciones que tienes en memoria sean enviadas a la BD. Te recomiendo que restructures tu ciclo y que evites imponer el tener que actualizar una tabla que ya tuvo problemas al intentar actualizarse. Es mejor hacer un rollback o algo así para evitar este tipo de incidentes. Estoy suponiendo que utilizas on objeto tipo TTable y que ingresas los datos de manera tradicional. Yo prefiero utilizar un query, es más cómodo y te evitas de codificar un sin fin de cosas, si lo quieres hacer con un TQuery, o un objeto parecido podrías intentar algo asi:
De esta forma ejecutas una actualización en SQL. Es más entendible a mi punto de vista está mejor estructurado, además como veo que es para un sistema distribuido esto, a mi punto de vista, deberia de ser lo que debes utilizar. |
#4
|
|||
|
|||
Gracias
Voy a probar las recomendaciones.
Los dos post son un error el primer post me equivoque quice decir appendo o edit segun sea el caso. Me parece bien ingresar los registros con sentencias de SQL voy a probar y les comento los resultados. Gracias nuevamente Javier |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
problemas al integrar una aplicación dentro de otra | aranel | Varios | 1 | 23-10-2005 01:40:00 |
Ayuda con paquetes por favor!! | adlfv | OOP | 9 | 29-08-2005 18:30:29 |
Error cuando llamo a un programa esxterno desde mi aplicacion | quake2420 | Varios | 2 | 12-08-2005 19:30:44 |
lanzar proceso lanzado desde aplicacion delphi | agustincs | API de Windows | 10 | 01-09-2004 21:24:52 |
Interactuar con otra aplicacion o con su base de datos (tablas .dbf) | jealousy | Varios | 2 | 13-02-2004 00:46:15 |
|