Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
Unhappy Consulta en TQuerys usando dos tablas

Hola, mi problema es el siguiente: Tengo mi aplicacion hecha en Delphi 6 y para las consultas utilizo TQuerys, y realmente me funcionan bien, el problema esta que algunas de las consultas utilizo dos tablas es decir:

Select
TCompraGral.id_compragral, TCompraGral.TotalFinal, TCompraGral.NumFactura, TCompraGral.MontoFactura, TProveedores.NombreComercial
from TCompraGral, TProveedores
where
TCompraGral.Id_Proveedor = TProveedores.Id_Proveedor AND
TCompraGral.EstatusFactura = 'PP' AND TCompraGral.Estatus = 'RV' AND NumFactura = '----'

y es en estas consultas donde me marca error mi aplicacion, no se si me explico correctamente; al hacer yo mi consulta me muestra todos los datos que pido, cierro mi ventana y todo va muy bien sin embargo al cerrar la aplicacion me marca error. Mis formas son child y ya intente cerrar los querys, porner el Active en false y utilizar el free, aun asi marca error el cual es el siguiente:

'Access violation at address 00000000. Read of address 00000000'

realmente espero que alguien me pueda ayudar... mil gracias por su tiempo y atención.

Responder Con Cita
  #2  
Antiguo 01-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Dudo que el problema sea que la consulta utilice dos tablas, esta es una práctima muy normal.
Tu problema seguramente es al cerrar la aplicación... ¿Qué estas haciendo en este momento?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 01-04-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
A simple vista, no creo que las consultas tengan nada que ver con el fallo, porque no revisas a ver si tienes alguna referencia a un componente que ya no existe o nunca existio por ahí pienso pueda venir el fallo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 01-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
... lo único que realizo en el boton salir de mi aplicacion es el siguiente código,

if FPrincipal.MDIChildCount= 0 then
application.Terminate
else
showmessage('Cierre la ventana que tiene activa');
y el problema o lo que mas me intriga y me hace pensar que es el query es porque con otras ventanas no sucede incluso con otras que tambien son de consulta pero que por cada TQuery solo utilizan una tabla no dos.
muhas gracias....espero no ser muy insistente pero ya no se que hacer.
Responder Con Cita
  #5  
Antiguo 01-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿Y pones algo en el OnDestroy de formularios / controles que aún no se han eliminado?

PD: ¿Tienes claro que es un Access Violation?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 01-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Las consultas problemáticas las realizas en un formulario aparte?
De ser así, ¿dicho formulario se libera al momento o hasta que termina la aplicación?
Si es lo último intenta liberarlo al momento de cerrarlo (evento OnClose, Action := caFree) para tratar de que la excepción salte desde antes y no al término de la aplicación. Esto no ayudará directamente a saber qué es lo que pasa pero sí a acotar el problema de forma que sea más fácil tratar de localizarlo.

Por otra parte, en el mensaje de error

'Access violation at address 00000000. Read of address 00000000'


¿la dirección (address) realmente es 0 o tiene otro valor?

Si es lo último apúntalo y antes de cerrar el mensaje pásate al IDE de Delphi, oprime Pausa y usa la opción Search|Find Error para tratar de que te lleve al punto donde se está produciendo la excepción. Pasa a veces que algunos errores causados por referenciar objetos ya destruidos se generan cuando el sistema de excepciones ya cerró y por ello el "debugger" no puede localizar directamente la línea.

// Saludos
Responder Con Cita
  #7  
Antiguo 01-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
hola delphi.com.ar, bueno yo mis formularios los creo y destruyo conforme el usuario los necesite es decir, no puedo abrir dos formularios independientes al mismo tiempo incluso no puedo cerrar mi aplicación si tengo formularios abiertos, aun asi contestando tu primer punto ondestroy no tengo codifo pero si en onclose es alli donde destruyo mis formularios. Y con respencto a tu segundo punto ralmente no tengo muy en claro de que se trate, segun he visto ese error es marcado cuando no encuentra algun archivo, pero realmente no lo se
gracias....
Responder Con Cita
  #8  
Antiguo 01-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
hola roman, si manejo como tu mencionas mis formularios, utilizando el CaFree, y si el address es 0, gracias.
Responder Con Cita
  #9  
Antiguo 01-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Un Acces Violation se produce cuando tu programa accede a un sector de memoria que no tiene reservado. La forma más normal de que se produzca esto, es cuando haces referencia a un objeto que no esta instanciado, porque aun no ha sido creado o ya se ha destruido.

Sabiendo esto:
- Fíjate como destruyes los objetos y si haces referencia a alguno de estos despues de haber sido destruído.
- Por ahora, no destuyas ningun objeto dentro del mismo (Self.Destroy)
- Fíjate que no se haga referencia a un objeto que no ha sido creado

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 01-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
hola delphi.com.ar, gracias por informarme , ahora con respecto a los que me indicaste no entendi muy bien que quieres decir con fijarme en las referencias que hago, pero puedo decir que por medio de código no mando a llamar nada que ya este destruido, inlcuso incluso los querys que ocupo para la forma de consulta estan situados en la misma y no en mi datamodule, por otro lado lo que si note es que tengo una forma la cual ocupo para entrar a mi sistema y esa nunca la destruyo, pero realente no creo que por esa forma sea mi problema ya que lo logico sería entonces que el error se presentara siempre que cierro la aplicacion no?

mil gracias por el tiempo que me estan brindando...

modifique mi aplicación y ya elimino la forma antes mencionada antes de cerrar el sistema pero el error sigue en el mismo lugar
espero alguien me pueda ayudar a enterder

Última edición por Aura fecha: 01-04-2004 a las 21:10:46.
Responder Con Cita
  #11  
Antiguo 28-04-2004
Avatar de Aura
Aura Aura is offline
Miembro
 
Registrado: mar 2004
Ubicación: Veracruz, Ver., México
Posts: 43
Poder: 0
Aura Va por buen camino
Thumbs up

Agradezco enormemente la ayuda que me brindaron días atrás y aunque ya pasaron muchos días les informo que se soluciono ya mi problema y tal vez mi error fue que no les comenté que estoy utilizando integridad referencial en mis tablas y eso era lo que me originaba el error, aunque claro como todo al solucionar este problema se me originaron otros pero creo que son mas fáciles de localizar, mil gracias a ustedes....
__________________
----------------->> Saluditos <<-----------------
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


La franja horaria es GMT +2. Ahora son las 00:46:32.


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