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 07-09-2006
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 22
ingel Va por buen camino
demasiados access violation

HOla foro .. puede que tenga un dia con el biorritmo bajo pero los access violation me estan fastidiando sobremanera ..
Todo comenzo con un simple listado igual a TODOS los demas , uso una tabla temporal , alli grabo con un SP lo que necesito imprimir , la asigno a un
QReport y relaciono un QRDBText con los campos de dicha tabla.
bueno .. en ESTE caso ..antes de hacer el .Print debo hacer el Open de la tabla .. pues me da access violation ..y no hay caso ..
he probado 'mover' el codigo en diferentes partes pero nada ..
(hago el open de la tabla desde el entorno y abre sin problema .. los datos grabados en la tablas estan correctos)

Tal vez el problema venga por otro lado .. y este haciendo algo incorrectamente..
Estoy ejecutando una ventana principal que usa 'varios' forms ..
los creo TODOS juntos hago el Showmodal de ESA ventana principal
y al salir hago el FREE de todos juntos ..

por ej..

Código:
Application.CreateForm(TFPediSeg,FPediSeg);
Application.CreateForm(TFPedDetProd,FPedDetProd);
Application.CreateForm(TFCompItems,FCompItems);
...// son 7 u 8 forms

FPediSeg.Showmodal

CONTROL /* esto es un procedimiento de control que hace un open de una tabla general del sistema..*/

FPediSeg.free
FPedDetProd.free
FCompItems.free
...
La primera duda es el ORDEN en que debo hacer los FREE?

Digo esto porque ahora simplemente voy entrando a sucesivos forms (ya creados en el principal) mostrandolos con Showmodal y simplemete SALIENDO
en cadena .. cuando salgo del tercero .. o sea ..el primero llama a un segundo y este segundo a un tercero ... saliendo simplemente de este tercero .. en cualquier instruccion que ponga luego de l showmodal .. me da error de access violation ..hasta en un simple Showmessage .. y todavia no he hecho ningun free..

bueno ..espero haya sido lo suficientemente claro ...y alguin pueda guiarme un poco...

GRACIAS ...y saludos
Ingel
Responder Con Cita
  #2  
Antiguo 07-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si esta es la duda pero para llamar a un from yo uso:

procedure TFMainForm.BitBtn10Click(Sender: TObject);
begin
FUsuarios:=TFUsuarios.Create(self);
try
FUsuarios.ShowModal;
finally
FUsuarios.Free;
end;
end;

Esto en cada from osea el que llama a otro, asi cierro el from que no necesito y ahorro memoria.
Podria ser esto.
Espero te sirva de algo.
Saludos
Responder Con Cita
  #3  
Antiguo 07-09-2006
reina reina is offline
Miembro
 
Registrado: ago 2005
Ubicación: Capital Federal-La Plata (Bs As)
Posts: 147
Poder: 19
reina Va por buen camino
Hola compañero! la verdad que no entendi mucho..jaja pero como soy terca contesto igual
Bueno un consejo para guardar prolijidad deberias crear las ventanas cuando realmente las uses..y liberarlas cuando no las uses..
Tambien podrias proteger bloque despues de la creacion con un try... finally.
Si haces un showmodal a un form que ya esta liberado..te va a dar error..es eso lo que te pasa??
Espero te sirva mi comentario.
Salu2

LA PATRIA SERA LIBRE!
Responder Con Cita
  #4  
Antiguo 07-09-2006
reina reina is offline
Miembro
 
Registrado: ago 2005
Ubicación: Capital Federal-La Plata (Bs As)
Posts: 147
Poder: 19
reina Va por buen camino
Uhh Me Ganaron De Mano! Ja..coincido Con El Comentario Anterior..
Responder Con Cita
  #5  
Antiguo 07-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola denuevo
Este es un simple codigo que llama a un reporte de compras por medio de un query.

If Reporte = 'ComprasXFecha' then
begin
ShortDateFormat := '#yyyy/mm/dd#';
try
QRComprasXCliente:=TQRComprasXCliente.Create(self);
QRComprasXCliente.ADOQuery1.SQL.Add(' WHERE CxPagar.TipoTransac="FA" ');
QRComprasXCliente.ADOQuery1.SQL.Add(' AND FechaTransac >= '+DateToStr(DTP1.Date)+' AND FechaTransac <= '+DateToStr(DTP2.Date));
QRComprasXCliente.ADOQuery1.SQL.Add(' ORDER BY CodProveedor, FechaTransac;');
QRComprasXCliente.ADOQuery1.Open;
ShortDateFormat := 'dd/mm/yyyy';
QRComprasXCliente.Titulo.text := 'Compras Realizadas por Fecha';
QRComprasXCliente.QRLblDesde.Caption := DateToStr(DTP1.Date);
QRComprasXCliente.QRLblHasta.Caption := DateToStr(DTP2.Date);
If RadioGroup1.ItemIndex = 0 then QRComprasXCliente.Print
else QRComprasXCliente.Preview;
finally
QRComprasXCliente.Free;
end;

Tal vez te sirva para completar tu enlace al qreport y no te de errores
Por lo menos a mi me sirve.
Saludos
Responder Con Cita
  #6  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
solo como comentario apart; en la línea:
Código Delphi [-]
QRComprasXCliente.ADOQuery1.SQL.Add(' AND FechaTransac >= '+DateToStr(DTP1.Date)+' AND FechaTransac <= '+DateToStr(DTP2.Date));


creoq ue sería mejor:
Código Delphi [-]
QRComprasXCliente.ADOQuery1.SQL.Add(' AND FechaTransac between '+DateToStr(DTP1.Date)+' AND '+DateToStr(DTP2.Date)+'''');


de esta forma no tienes que validar si una fecha es mayor a la otra o no
__________________

Responder Con Cita
  #7  
Antiguo 07-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Gracias Contra veneno
Tu comentario lo tamare en cuenta, esto tambien servira para que el que hizo la pregunta mejore su codigo al igual que yo, para esto esta el foro, Aprender.
Saludos
Responder Con Cita
  #8  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
A mi me pareció intrigante que tuvieras que crear un SP para generar una tabla para luego asignarlo a un Qreport.

Para mi lo más fácil hubiera sido utilizar un TQuery y asignarlo al QReport
__________________

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
Access Violation Carliviris Varios 5 12-05-2006 19:21:45
Access violation at .... Perio Varios 5 07-02-2006 15:50:36
access violation chilenauta Impresión 15 15-12-2004 19:45:51
Access Violation ..... MADV01 Varios 2 24-03-2004 16:01:33
Access violation Giasl Varios 6 07-05-2003 12:35:51


La franja horaria es GMT +2. Ahora son las 23:43: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
Copyright 1996-2007 Club Delphi