PDA

Ver la Versión Completa : No puedo obtener el ultimo valor de un campo en una variable!


ezequiel913
16-09-2011, 01:16:13
Hola gente!!!

bueno el problema que tengo es el siguiente, tengo que poder obtener el ultimo valor de un campo de una tabla situada en una base de datos de SQL Server 2000. Por que quiero hacer esto? - bueno necesito obtener ese valor para poder sumarle uno mas y tirarlo en un Edit sin que el usuario lo ingrese, osea el valor de ese Edit se lo doy yo con la sumatoria en uno mas del ultimo valor del campo.

por ejemplo:

si el ultimo valor del campo de la tabla que quiero obtener es 5 yo le tengo que sumar 1 y mostrar en el edit el 6.

el codigo que tengo en Delphi 7 es el siguiente:

var N, P: Integer;

N:= 0;
P:= 1;


Query1.SQL.Clear;
Query1.SQL.Add('Select Max(Numero) From OrdenCompra');
Query1.Open;
N:= Query1.FieldByName('Numero').AsInteger;

Numero.Text:= Num + IntToStr(P);


este es el codigo que tengo para obtener el ultimo campo de la columna NUMERO, el tema es que me tira error, me dice que el FIELD 'NUMERO' NO FOUND.

asique ya nose que mas hacer.

bueno eso seria todo, si no se entiende lo que quiero avísenme.

saludos.!!!

Caral
16-09-2011, 01:26:49
Hola
El error dice que no tienes por que no encuentra ningún campo que se llame Numero.
Por otro lado:


Query1.SQL.Clear;
Query1.SQL.Add('Select Max(Numero) From OrdenCompra');
Query1.Open;
Numero.Text:= IntToStr(Query1.Fields[0].AsInteger+1);


Para que variables ?.
Saludos

Cañones
16-09-2011, 01:31:26
Porque el campo 'numero' no existe, por eso no podes hacer referencia.
La sentencia sql la agregas en la propiedad sql del query.
Sobre el query1 haces doble click y en el editor de campos haces click derecho y le das a add all fields.
Hay otras formas, pero esta es la que se y la que uso.

ezequiel913
16-09-2011, 01:32:10
Hola
El error dice que no tienes por que no encuentra ningún campo que se llame Numero.
Por otro lado:


Query1.SQL.Clear;
Query1.SQL.Add('Select Max(Numero) From OrdenCompra');
Query1.Open;
Numero.Text:= IntToStr(Query1.Fields[0].AsInteger+1);


Para que variables ?.
Saludos


gracias Caral. me anduvo lo que me dijiste, muchas gracias.

Caral
16-09-2011, 01:37:21
Hola
Que bueno que te sirviera.
También se puede hacer con variables, pero servirían si en algún momento quieres cambiar la suma de 1 a mas.
Saludos

defcon1_es
16-09-2011, 18:02:19
Una solución alternativa a la de caral:

Query1.SQL.Add('Select Max(Numero) as NUMERO From OrdenCompra');