Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   error extraño (https://www.clubdelphi.com/foros/showthread.php?t=13948)

gilberto_1126 04-09-2004 19:22:30

error extraño
 
Saludos.

Disculpen la molestia pero es que ya estoy desesperado y no se que hacer.
Hice un proyecto llamado Afimadero y en el tengo la sig. consulta

SELECT E.CowId, E.[Date], U.CodeDescription, E.EventCode, I.IDInsem,
(SELECT UserDictionary2.CodeDescription FROM UserDictionary
UserDictionary2 WHERE UserDictionary2.Code=I.IDInsem) AS Inseminador,

(SELECT UserDictionary2.CodeDescription FROM UserDictionary
UserDictionary2 WHERE UserDictionary2.Code=E.Code) AS Coment

FROM Events AS E LEFT JOIN (Inseminator AS I
LEFT JOIN (Bulls AS B
LEFT JOIN UserDictionary As U
ON B.Name = U.Code)
ON I.IDBull = B.BullID)
ON E.CowId=I.CowId AND E.[Date]=I.[Date]
WHERE ((E.EventCode=30011) OR (E.EventCode=30017))
ORDER BY E.CowId,E.[Date]

y al ejecutarla me aparece el sig. error

"Project Afimadero.exe raised exception class EAccessViolation with Message 'Access Violation at address 1B049773 in module 'msjet40.dll'. Read of address 00000000'. Process Stopped. Use Step or run to continue".

Yo pensaba que tenia mal la consulta pero no es asi.

Lo que hice fue agregarle otra limitante para que me arrojara el mismo numero de columnas pero un numero menor de registros, y si corre.
La tabla de Events tiene la estructura de la sig manera
#vaca(Cow) Fecha(Date) Evento(Event) Codigo (Code)
y tiene registros con fecha desde 1990 pero la fecha la maneja de este modo 33561. Entonces cuando limito la consulta a que me de los registro de la fecha 38000 si lo realiza y no me marca ningun error

nada mas le agrego en el WHERE
WHERE ((E.EventCode=30011) OR (E.EventCode=30017)) AND (E.[Date]>38000)
ORDER BY E.CowId,E.[Date]
No se que pueda hacer .
no se si alguien me pueda ayudar

jachguate 05-09-2004 00:56:06

Hola

No creo que el problema expuesto sea de SQL. Un EAccessViolation ocurre normalmente por tratar de acceder a una instancia de un objeto que ya ha sido destruido, o que aún no ha sido creado. Por la dirección que apunta el Read of address 00000000, me atrevería a asegurar que estas tratando de usar un método o una propiedad de un objeto que apunta a nil.

Te recomiendo seguir paso a paso la ejecución de tu programa para determinar donde ocurre el fallo.

Por otro lado, te recomiendo el uso de las etiquetas [delphi], [sql] o [code] para publicar trozos de código. Hay un mensaje al inicio de cada foro que explica su uso, y un vínculo en mi firma a la ayuda de la etiqueta code.

Dado que el tema no va por SQL, muevo este hilo al foro de varios.

Hasta luego.

;)

jachguate 05-09-2004 01:01:01

Olvidé apuntar, y hablando de violaciones a la guia de estilo de los foros, que el título del hilo no es apropiado.

Te imaginas cuantos errores extraños se ven por aqui... si el 70% de los hilos se llamaran "error extraño", esto seria un caos.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 13:13:42.

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