Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   EAccessViolation (https://www.clubdelphi.com/foros/showthread.php?t=51625)

elorza 21-12-2007 12:19:30

EAccessViolation
 
Hola, tengo una pequeña duda sobre los datasource.
Yo he definido un datasource en el formulario principal y lo utilizo para sacar unos datos en ese mismo formulario. Pero después, tengo otro formulario donde necesito utilizar ese mismo datasource. Si accedo a cualquiera de sus propiedades me da el siguiente error: "EAccessViolation".

He estado leyendo en el foro y dicen que este error suele ser por acceder a un componente que no existe o que ya esta closed.

por ejemplo:

i: Integer;
...
i:=Form_1.dsConsulta.DataSet.Fields.Count; --> me da EAccessViolation

o tambien:

valor:String;
valor:=Form_1.dsConsulta.DataSet.Fields[0].DisplayLabel;--> me da EAccessViolation

El datasource tengo definido en el formulario principal y lo he declarado como publico.

¿Qué es lo que estoy haciendo mal?

dec 21-12-2007 12:26:44

Hola,

Tú mismo te has contestado, al menos en principio. Deberías asegurarte de que el objeto al que tratas de acceder está disponible. Algo así como:

Código Delphi [-]
if Assigned(Form_1.dsConsulta) then
begin
  // Puedes usar el objeto
end;

Lo que ahora mismo ignoro es si habría que comprobar antes si el propio formulario, donde está el "Dateset", está disponible, o, como he hecho arriba, puedes intentar comprobar la disponibilidad del "Dataset", directamente.

elorza 26-12-2007 11:07:32

ok, pero esque creo que el objeto si está activo! Ahora lo pruebo!

muchas gracias!


La franja horaria es GMT +2. Ahora son las 03:55:37.

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