Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta para obtener Max (https://www.clubdelphi.com/foros/showthread.php?t=70802)

BlueSteel 11-11-2010 17:43:08

Consulta para obtener Max
 
Hola

Tengo una consulta en donde busco el mayor valor de un campo determinado...

Código SQL [-]
Select Max(Tar_CodigoBarra)+1 as sFol
From Tarjeta

El resultado de esto es : sFol = N (cualquier valor numerico)

desde delphi 7, lanzo la consulta así

Código Delphi [-]
     Datos.AQ_Select.Close;
     Datos.AQ_Select.SQL.Clear;
     Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 From Tarjeta as sFol');
     Datos.AQ_Select.Open;

Y quiero pasar el resultado a una campo Edit de mi formulario.. lo trato de pasar así, pero me dice que el campo sFol no existe

Código Delphi [-]
sFol.Text := IntToStr(Datos.AQ_Select['sFol']);

el error al ejecutar es

'AQ_Select: Field 'sFol' not found

alguien sabe como pasar ese parametro a una variable....

Salu2:p:D

movorack 11-11-2010 17:50:44

Cita:

Empezado por BlueSteel (Mensaje 382078)
Código Delphi [-]
Datos.AQ_Select.Close;
Datos.AQ_Select.SQL.Clear;
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 From Tarjeta as sFol');
Datos.AQ_Select.Open;

Hola BlueSteel

Intenta cambiando el SQL que estás enviando. tal cual lo estás enviando, el parametro se llamaria 'max' no 'sFol'.

Código Delphi [-]
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 as sFol From Tarjeta');

BlueSteel 11-11-2010 19:38:02

Cita:

Empezado por movorack (Mensaje 382079)
Hola BlueSteel

Intenta cambiando el SQL que estás enviando. tal cual lo estás enviando, el parametro se llamaria 'max' no 'sFol'.

Hola Movorack

Ya lo realice.. pero igual me da el error: 'AQ_Select: Field 'max' not found

lo realice de 2 formas distintas...
Código SQL [-]
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 as max From Tarjeta');


y

Código SQL [-]
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 From Tarjeta');


pero no funco....

Salu2:p:D

marcoszorrilla 11-11-2010 20:00:20

Código Delphi [-]
sFol.Text := Datos.AQ_Select.Fields[0].AsString;

Intenta algo asi, no tengo Delphi a mano para hacer la prueba.

Un Saludo.

BlueSteel 11-11-2010 21:24:39

Hola

Gracias.. ya me funciono... utilice lo sgte:

Código Delphi [-]
Datos.AQ_Select.Close;
Datos.AQ_Select.SQL.Clear;
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 From Tarjeta');
Datos.AQ_Select.Open;
sFol.Text := IntToStr(Datos.AQ_Select.Fields[0].AsInteger);

Salu2:D:p

ecfisa 12-11-2010 04:20:01

Hola BlueSteel.

Primero que nada, me alegro que hayas resuelto el problema.
Después, a modo de aclaración, voy a reivindicar el código de movorack, ya que es correcto. :)

La primera prueba no funcionó por que el nombre de la función agregada Max es igual al nombre del campo que va a contener su resultado: max.
Código Delphi [-]
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 as max From Tarjeta');

Y en la segunda falta la sentencia AS y el nombre del campo que recibe el resultado:
Código Delphi [-]
Datos.AQ_Select.SQL.Add('Select Max(Tar_CodigoBarra)+1 AS NOMBRE  From Tarjeta');


Saludos. :)


La franja horaria es GMT +2. Ahora son las 00:12:36.

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