Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conversión de tipo para clase inválida (https://www.clubdelphi.com/foros/showthread.php?t=17749)

scooterjgm 20-01-2005 10:35:48

Conversión de tipo para clase inválida
 
Buenos días a todos!!

Al hacer una consulta con una TADOQuery sobre MSSQL Server me sale el error 'Conversión de tipo para clase inválida' al llegar a la sentencia
Código:

TADOQuery.Active:= True
pero luego sí que me saca los datos. ¿Qué significa este error?

Código:

  TADOQuery.Active:= False;
  TADOQuery.SQL.Clear;
  TADOQuery.Connection := TADOConection;
  TADOQuery.SQL.Add('select * from Tabla');
  TADOQuery.Active:= True;

Gracias por dedicar su tiempo a leer mi consulta.

delphi.com.ar 20-01-2005 12:59:59

Cita:

Empezado por scooterjgm
Código:

  TADOQuery.Connection := TADOConection;

¿Tienes una variable llamada TADOConection con un TADOConnection??

scooterjgm 20-01-2005 13:10:38

la conexión se llama 'MiConexión' y es de tipo TADOConnection.

delphi.com.ar 20-01-2005 13:35:59

Espera.. me acabo de dar cuenta que en todo momento estas haciendo referencia a la clase, y no a una instancia de esta.

En este ejemplo estoy creando el Query en tiempo de ejecución, en el caso que tu lo hayas creado en tiempo de diseño, tienes que hacer referencia a la variable o campo que refiere a este.
Código Delphi [-]
var
  MiQuery: TADOQuery;
begin
  MiQuery := TADOQuery.Create(self);
  try
    MiQuery.Connection := MiConnection;
    MiQuery.SQL.Add('select * from Tabla');
    MiQuery.Active:= True;
    ...
  finally
    MiQuery.Free;
  end;

Saludos!

scooterjgm 20-01-2005 13:50:21

He solucionado mi error cambiando la conexión. Parece ser que la conexión vieja se quedaba pillada en algún sitio y probocaba ese error.

Cuando vaya cambiando en el código todas las conexiones por la nueva encointraré dónde daba ese error.

Muchas a gracias Delphi.com.ar y a todos los que han leído mi consulta por todo el tiempo que le han dedicado. ;)

delphi.com.ar 20-01-2005 14:25:27

¿Ese error te lo da en español?.... funciona esa consulta desde la consola del motor??

scooterjgm 20-01-2005 15:33:55

Si, he estado buscando en las traducciones que le he puesto sin resultado.

¿Puede ser q esté pisando al hacer la llamada a la conexión o que haya una transacción abierta? La TADOQuery la tengo creada en el formulario. He probado a hacer lo mismo en un proyecto en blanco y funciona sin problemas. Este error me está volviendo loco!! :confused:
Estoy iniciandome con ADO.

Gracias!!


La franja horaria es GMT +2. Ahora son las 22:57:50.

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