Jump to content


Photo

Problemas al cerrar un TQuery


  • Please log in to reply
12 replies to this topic

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 10 December 2012 - 05:19 PM

Pues que me encuentro con esta novedad! por qué? no sé pero muy raro, en algunas ocasiones estoy trabajando con un query y al haber realizado operaciones en el le doy Query.Close; y ¡tómala barbon! me marca un error:

"Access violation at address 00B0FBD4 in module 'proyecto.exe' Read of address 00000000."

Algún comentario, esto lo hace con Zeos, pero revisarlo con los componentes nativos hace lo mismo, lo que lleva el query es lo siguiente:

un query armado con mas de una tabla, y lleno los fields, y hago referencia a este query, de la siguiente manera,


delphi
  1. ...
  2.   Variable := queryCAMPO.AsString;
  3. ...



esto en una función, y después es que hago el "refresh" cerrando y abriendo el query y justo al cerrar marca el error, antes mencionado...


  • 0

#2 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1750 posts
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Posted 10 December 2012 - 05:21 PM

...


delphi
  1. ...
  2.   Variable := queryCAMPO.AsString;
  3. ...

...


¿Y no te serviría algo así, Razadi?



delphi
  1. ...
  2.   Variable := FieldByName('CAMPO').AsString;
  3. ...



Yo me libré de muchos dolores de cabeza usando éste modo de acceder a los datos...
  • 0

#3 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 10 December 2012 - 05:38 PM

Pues que me encuentro con esta novedad! por qué? no sé pero muy raro, en algunas ocasiones estoy trabajando con un query y al haber realizado operaciones en el le doy Query.Close; y ¡tómala barbon! me marca un error:

"Access violation at address 00B0FBD4 in module 'proyecto.exe' Read of address 00000000."

Algún comentario, esto lo hace con Zeos, pero revisarlo con los componentes nativos hace lo mismo, lo que lleva el query es lo siguiente:

un query armado con mas de una tabla, y lleno los fields, y hago referencia a este query, de la siguiente manera,


delphi
  1. ...
  2.   Variable := queryCAMPO.AsString;
  3. ...



esto en una función, y después es que hago el "refresh" cerrando y abriendo el query y justo al cerrar marca el error, antes mencionado...




No lo había pensado de esa manera deja lo hago y comento, gracias por el tip..
  • 0

#4 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 10 December 2012 - 05:49 PM

mmm  :cry:  :sad:

Pues no TiammatMX, sigue el mismo error....
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4266 posts
  • LocationCosta Rica

Posted 10 December 2012 - 06:04 PM

Hola
Si lo hace aveces se deberia de usar un


delphi
  1. Try
  2. // lo que sea
  3. Finally
  4. // el resto
  5. end;


Saludos
  • 0

#6 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 10 December 2012 - 06:11 PM

Hola
Si lo hace aveces se deberia de usar un


delphi
  1. Try
  2. // lo que sea
  3. Finally
  4. // el resto
  5. end;


Saludos


Gracias caral, de hecho lo tengo con un



delphi
  1. try
  2.   ...
  3. except
  4.   ...
  5. end;



Porque no puedo destruir el componente ya que este muestra información en un grid y que esta viendo el usuario...

Pero esta raro, no encuentro algún motivo lógico por el cual haga este error...


  • 0

#7 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 10 December 2012 - 06:34 PM

Esto en una función, y después es que hago el "refresh" cerrando y abriendo el query y justo al cerrar marca el error, antes mencionado...


¿Tienes algo de código en los eventos BeforeClose  o AfterClose del query?  De pronto llamas la función en esos eventos?

Debería ser algo así:



delphi
  1. function FuncionCadena: string;
  2. begin
  3. try
  4.   TuQuery.Close;
  5.   //Pasar parámetros si los hay
  6.   TuQueryOpen;
  7.   Result := TuQuery.FieldByName('TuCampo').AsString;
  8. finally
  9. TuQuery.Close;
  10. end;
  11. end;
  12.  
  13. // Más código por fuera de la función
  14.  
  15. var
  16. TuVariable: string;
  17.   // ....
  18. TuVariable := FuncionCadena;



Saludos
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 10 December 2012 - 10:03 PM

Hola amigo

Y no estarás usando algún valor del Query en otro componente, variable o función y al momento de cerrar se provoca la excepción ?

Saludos
  • 0

#9 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 11 December 2012 - 06:40 AM

Saludos.

Todo parece indicar que la instancia del Objeto ha sido destruida previamente.

Revisa tienes algún Destroy o Free después de realizar la operación.
  • 0

#10 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 11 December 2012 - 08:19 AM

Qué base de datos estás usando ???

Saludox ! :)
  • 0

#11 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 11 December 2012 - 04:46 PM


Hola amigo

Y no estarás usando algún valor del Query en otro componente, variable o función y al momento de cerrar se provoca la excepción ?

Saludos


No amigo, no tiene ni calculados  :(


Saludos.

Todo parece indicar que la instancia del Objeto ha sido destruida previamente.

Revisa tienes algún Destroy o Free después de realizar la operación.


No, de hecho es un componente que pongo en diseño y esta relacionado a un grid y no lo ocupo para nada, solo para mostrar cierta infromación en el grid, pero eso si, "el SQL esta relacionado con varias tablas".


Qué base de datos estás usando ???

Saludox ! :)


MySQL y Zeos...

Pero es raro tengo otras ventanas con lo mismo "casi casi" y con ellas no tengo problemas... y lo que debo anexar es que este query esta en una clase, es decir mis formas las heredo de una en general pero con otros catálogos funciona sin problemas y con esa en particular es con la que tengo fallas....
  • 0

#12 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 12 December 2012 - 06:08 AM

Saludos!

¿Podrías mostrar el código de la pantalla en cuestión?
  • 0

#13 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6301 posts
  • LocationArgentina

Posted 17 December 2012 - 08:31 PM

Evidentemente tienes un objeto liberado. Cuando en un AV ae lee que el read es en una dirección 0x0 se trata de un objeto sin inicializar o ya liberado. Utiliza el debug y analiza a que apunta la dirección del error, puede ser un query o algun componente relacionado a éste.

Saludos,


  • 0




IP.Board spam blocked by CleanTalk.