FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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. |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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:
|
#4
|
||||
|
||||
... 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. |
#5
|
||||
|
||||
¿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. |
#6
|
||||
|
||||
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.... |
#7
|
||||
|
||||
hola roman, si manejo como tu mencionas mis formularios, utilizando el CaFree, y si el address es 0, gracias.
|
#8
|
||||
|
||||
¿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 |
|
|
|