Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2011
Avatar de alej.villa
alej.villa alej.villa is offline
Miembro
NULL
 
Registrado: may 2011
Ubicación: Caracas, Venezuela
Posts: 76
Poder: 13
alej.villa Va por buen camino
Thumbs down Access violation (Invalid pointer operation)

Buenas noches amigos foreros

Si este hilo no va en esta ubicacion les pido disculpas puesto que no sabia donde abrirlo.

Esta vez es una error muy raro que aparece en mi aplicacion cuando esta ejecutando una serie de bloques de codigos,

veran una breve explicacion para que sepan que hago en esos bloques de codigos.

1. Realizo un query que me selecciona solo la cedula del empleado segun su turno de trabajo (que lo paso por parametro), luego el resultado de la consulta la guardo en un arreglo dinamico string.
2. tengo un ciclo while en donde realizo lo siguiente:
2.1 pasar una cedula (del arreglo anteriormente nombrado) de manera aleatoria a un nuevo arreglo dinamico string
e.j.
Código Delphi [-]
cedula[i] := RandomFrom (miArreglo)
2.2 Comparo que la cedula que pase del primer arreglo al segundo no este la persona de permiso, reposo, vacaciones, etc.
2.3 si pasan la condicion anterior comparo que esa misma cedula (que seria el empleado) no tenga limitaciones de trabajo, es decir, que pueda trabajar en cualquier area.
2.4 verifico que esa cedula no haya pasado en unas areas especificas en donde pueden entrar una sola vez por semana.
2.5 si pasan todas las condiciones anteriormente nombradas las registro en la base de datos en donde le asigno una posicion para trabajar.

hasta aqui todo bien, el programa funciona perfecto.

El problema es que si tengo 29 personas en el query, cuando registra 22 personas me sale ese error de invalid pointer operation o access violation, y la verdad es que no lo entiendo.

Espero puedan ayudarme o brindarme alguna informacion valiosa, ya busque en nuestro amigo google pero nada.

adjunto una foto para ver si ustedes entienden esto.
Archivos Adjuntos
Tipo de Archivo: rar access violation.rar (50,2 KB, 5 visitas)
Responder Con Cita
  #2  
Antiguo 19-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola alej.villa

Para dar una respuesta totalmente válida habría que ver el código, pero igual voy a apostar una ficha...

Cuando realizas la carga:
Código Delphi [-]
  cedula[i] := RandomFrom (miArreglo);
¿ Revisaste que la variable 'i' comienze en la posición 0 del array ?

Es decir, algo como esto te daría un error de access violation:
Código Delphi [-]
var
  a: array of integer;
begin
  for i:= 1 to 29 do
  begin
    SetLength(a, Length(a)+1);
    a[i]:= i;   //  ¡¡¡ Incorrecto !!! debería ser: a[i-1]:= i;
  end;
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-10-2011
Avatar de alej.villa
alej.villa alej.villa is offline
Miembro
NULL
 
Registrado: may 2011
Ubicación: Caracas, Venezuela
Posts: 76
Poder: 13
alej.villa Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola alej.villa

Para dar una respuesta totalmente válida, habría que ver el código, pero igual voy a apostar una ficha...

Cuando realizas la carga:
Código Delphi [-] cedula[i] := RandomFrom (miArreglo);

¿ Revisaste que la variable 'i' comienze en la posición 0 del array ?

Es decir, algo como esto te daría un error de access violation:
Código Delphi [-]var a: array of integer; begin for i:= 1 to 29 do begin SetLength(a, Length(a)+1); a[i]:= i; // ¡¡¡ Incorrecto !!! debería ser: a[i-1]:= i; end; end;


Un saludo.
Hola ecfisa

La verdad es que cuando hago la carga de un arreglo a otro lo hago en un ciclo while y la variable la inicializo en 1 y no hago la resta como tu indicas sino que comienza a cargar a partir de la posicion 1.

Gracias por tu comentario voy a revisar esa parte y comento a ver como me va
Responder Con Cita
  #4  
Antiguo 19-10-2011
Avatar de alej.villa
alej.villa alej.villa is offline
Miembro
NULL
 
Registrado: may 2011
Ubicación: Caracas, Venezuela
Posts: 76
Poder: 13
alej.villa Va por buen camino
Unhappy Nada

ecfisa arregle la parte que me dijiste y la verdad es que me agrega mas personas, es decir, con 29 cedulas disponibles de agregaba solo 22 max y me daba el error, ahora con 29 cedulas disponibles me agrega 26 pero me sigue saliendo el error, de invalid pointer operation

aqui una imagen para que veas
Imágenes Adjuntas
Tipo de Archivo: jpg error.JPG (26,1 KB, 12 visitas)
Responder Con Cita
  #5  
Antiguo 19-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Lo siento alej.villa, pero no alcanza con la imágen para poder ubicar el error.

La intención de mi mensaje anterior, fué ejemplificar uno de los casos que podrían provocar un error Access violation en un array dinámico pero pueden existir otros, incluso sin relación con él.
Una opción es poner algún break antes de donde sospeches que se puede estar dando el error y usar Trace Into (F7) para hacer un seguimiento línea a línea.
Si aún así no logras descubrir el error te reitero, vamos a tener que ver algo de código...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-10-2011 a las 05:09:13.
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
Invalid Pointer Operation FerCastro Varios 3 23-02-2010 21:47:26
Invalid Pointer operation Dll mcarazas Varios 2 15-10-2008 21:45:14
Invalid Pointer operation Dll mcarazas Varios 0 15-10-2008 16:42:23
invalid pointer operation muppett Varios 1 05-03-2008 00:17:55
QR - Invalid Pointer Operation alapaco OOP 6 07-06-2006 22:43:31


La franja horaria es GMT +2. Ahora son las 23:19:56.


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