Cita:
Empezado por Neftali
¿Puedes poner el código completo? me refiero a un trozo más amplio.
No aparece cómo destruyes ese objeto.
¿Lo estás ejecutando en un bucle? ¿Utilizas Timers?
Comentas que falla al cabo de X repeticiones, por lo tanto se deduce que el error no está en el Open, puesto que si no fallaríaen la primera vuelta.
Falla en el Open, pero está claro que interviene algun otro factor, que hace que falle al cabo de un rato.
Comenta algo más del bucle, ¿cómo se lanza, cada cuanto, quien lo lanza,...?
|
Código Delphi
[-]
IF permiso=0 Then Begin
escribir('Tiene permiso para entrar');
Try
escribir('B1');
ZRead.Close;
escribir('B2');
ZRead.SQL.Clear;
escribir('B3');
ZRead.SQL.Add('Select turno24,antes,agenda,inicioantes,idescanso from DetallePersonal d,TipoPersonal t Where d.cedula='+quotedstr(cedula)+'and d.cod_tipo=t.codigo');
escribir('B4');
ZRead.Open;
escribir('B8');
If Not ZRead.RecordCount>0 then
Begin
escribir('Despues de ejecutar Consulta TipoPersonal');
amigos miren el se mete por esta parte del codigo cuando la persona pasa una tarjeta ( cabe destacar que pueden pasar 50 personas seguidas en un periodo de 10 min) y tiene permiso para entrar, y luego hace esta simple consulta para ver segun la cedula de la persona cuales son las caracteristicas que posee dicha persona!! en realidad el codigo que esta antes no tiene nada de especial y el que sigue son puras asignaciones de variables, lo raro es que ahora cambie el objeto por el ZReadyOnlyQuery para ver si solventaba el problema y sigue..
lo documente con esa pequeña funcio de "escribir()" la cual me genera un archivo de texto que utilizo como tipo Log, para ver donde falla la aplicacion, por lo general el log se queda en "B4" o en "Tiene permiso para entrar", de verdad esto me esta volviendo loco porque nose que puede ser.