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)
-   -   Problemas al capturar de una consulta SQL el valor de una columna en variable Float (https://www.clubdelphi.com/foros/showthread.php?t=84409)

jandres007 16-10-2013 04:05:47

Problemas al capturar de una consulta SQL el valor de una columna en variable Float
 
Saludos amigos del foro,
En esta ocasión acudo a ustedes a realizar una consulta al parecer sencilla pero que no se porque no me trae un dato, haber si recibo ideas. Se trata de lo siguiente:
A travez ZTQuery intento capturar dos valores de 2 campos de una tabla que son tipo float en dos variables doublé, pero sucede que solo me toma el valor del primer campo, del segundo siempre arroja 0. El código es:

Código Delphi [-]
      FrmConexion.ZConsAux.SQL.Clear;
      FrmConexion.ZConsAux.SQL.Add('SELECT ASO_CODIGO, ASO_NOMBRE, ASO_APELLIDO, CAL_GRASA, CAT_NUMERO, CAL_PROTEINA ');
      FrmConexion.ZConsAux.SQL.Add('FROM CALIDAD ');
      FrmConexion.ZConsAux.SQL.Add('WHERE ASO_CODIGO = ' + varCodAso);
      FrmConexion.ZConsAux.SQL.Add('  AND CAT_NUMERO = ' + IntToStr(FrmConexion.ZTCatorcenaCAT_NUMERO.AsInteger));
      FrmConexion.ZConsAux.Open;
      if FrmConexion.ZConsAux.IsEmpty then
      begin
        TxtError := 'No se ha parametrizado valores de calidad de leche para la catorcena No.'+ IntToStr(FieldByName('CAT_NUMERO').AsInteger)+
                    ' al asociado del asociado No.'+ IntToStr(FieldByName('ASO_CODIGO').AsInteger) +' - '+ FieldByName('ASO_NOMBRE').AsString +' '+ 
                    FieldByName('ASO_APELLIDO').AsString + '. Verifique por favor.';
        ShowMessage(TxtError);
        Abort;
      end;
      varGrasa := FrmConexion.ZConsAux.FieldByName('CAL_GRASA').AsFloat;
      varProteina := FrmConexion.ZConsAux.FieldByName('CAL_PROTEINA').AsFloat;

me captura perfectamente el valor de varGrasa, pero siempre me deja en cero 0 el valor de varProteina, ya revise la BD el su valor no es cero. Es muy curioso...
Alguna idea ?

Mil Gracias..

oscarac 16-10-2013 19:15:45

estas seguro que el campo Cal_Proteina es Float en la tabla?

marcoszorrilla 16-10-2013 20:15:43

Código Delphi [-]
ShowMessage(FormatFloat(',0.00', FrmConexion.ZConsAux.FieldByName('CAL_PROTEINA').AsFloat));

Incluye esta línea para ver cual es el contenido en el momento de pasar el valor a la variable.

Un Saludo.

jandres007 17-10-2013 01:23:18

Muchas gracias por tu respuesta,
Revise y efectivamente el campo es float en la tabla, y también puse los a que me imprimiera los mensajes tal y como dijiste y efectivamente imprime el valor correcto. El problema sigue siendo que al momento de asignar el valor a la variable me le pone cero.
que rollo!! alguna idea ??
gracias

jandres007 17-10-2013 01:30:47

La solucion
 
Amigos del foro, he encontrado la solución a este problema y la publico por si alguna vez a alguien le sucede:

Cambie la variable varProteina de local a global y funciono perfectamente!!
Agradezco su amable ayuda gran comunidad!!


La franja horaria es GMT +2. Ahora son las 11:31:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi