Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sql que no retorna datos me da error:invalid variant type conversion (https://www.clubdelphi.com/foros/showthread.php?t=66875)

bezaig 16-03-2010 20:35:40

Sql que no retorna datos me da error:invalid variant type conversion
 
Hola, tengo un programa en delphi 3 y postgres 8 conectado por ODBC, al hacer una consulta que puedo o no retornar datos me da el error "invalid variant type conversion" cuando precisamente no vienen datos, parte del codigo es..
Código:

try
  f_sup.Qplan.close;
  f_sup.Qplan.SQL.Clear;
  f_sup.Qplan.SQL.Add('select a.*, b.descripcion');
  f_sup.Qplan.SQL.Add('from zonas a, usos b ');
  f_sup.Qplan.SQL.Add('where a.id_empresa= '+char(39)+dm.Qpred['id_empresa']+char(39)+' and ');
  f_sup.Qplan.SQL.Add('a.id_area='+char(39)+dm.Qpred['id_area']+char(39)+' and ');
  f_sup.Qplan.SQL.Add('a.id_pred='+char(39)+dm.Qpred['id_pred']+char(39)+' and ');
  f_sup.Qplan.SQL.Add('a.tipo_uso=b.tipo_uso ');
  f_sup.Qplan.Open;
...

y aún cuando esta dentro de un try except me salta el error justo en f_sup.Qplan.Open
alguna idea???? porfa

roman 16-03-2010 20:55:08

¿Qué quieres decir con que no retorna datos? ¿Que no devuelve ningún registro o que alguno de los campos está vacío? En todo caso, ¿en qué línea exactamente se produce el error?

// Saludos

bezaig 16-03-2010 21:09:49

Cuando la consulta no retorna registros se produce el error, y se da al ejecutar la línea f_sup.Qplan.Open;

roman 16-03-2010 21:14:44

¿Tienes algún evento asociado al componente QPlan?

// Saludos

bezaig 16-03-2010 21:29:19

No ningún evento...

roman 16-03-2010 21:34:08

Me parece raro. En fin. Intenta poner esto antes de abrir la tabla:

Código Delphi [-]
NullStrictConvert := false;

// Saludos

JosepGA 17-03-2010 08:58:53

hola,

¿ estas asignandole a un campo numerico un filtro como dato string ? Si es así, por hay te puede venir el error. Otro caso es cuando la pasas un valor al filtro con mas caracteres que la longitud del campo en la tabla.

Por cierto, mirate la función
Código Delphi [-]
QuotedStr( valor )
, ya que te evita tener que estar poniendo
Código Delphi [-]
char(39)
antes y despues del valor del filtro.

Un saludo


La franja horaria es GMT +2. Ahora son las 02:16:04.

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