Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Obtener siguiente registro acces (https://www.clubdelphi.com/foros/showthread.php?t=86241)

maxi915 04-07-2014 21:17:23

Obtener siguiente registro acces
 
Hola, una vez mas moletando por aca, queria hacer una consulta mas y creo que ya es la ultima con respecto a este proyecto que ya termino gracias a sus aportes!!

BUeno, lo que necesito es obtener el siguiente registro a un registro ya obtenido, es decir...

obtengo el id 1, por ejemplo, necesito obtener el siguiente a ese registro, aunque no sea 2 porq puede estar eliminado...hay alguna consulta que obtenga esto? gracias!!

esto es lo que uso para capturar un dato del registro que necesite..

Código Delphi [-]
Procedure capturar_Cliente_deTurnoCliente (QueryturnoCliente:TADOQuery; id_turno:Integer; var ID_cliente:Integer);

begin
  with QueryturnoCliente do
   begin
     SQL.Clear;
     SQL.Add('Select * From turnoCliente Where id_turno='+inttostr(id_turno));
     Open;
     ID_cliente:=FieldByName('Id_cliente').AsInteger;
   end;
end;

ecfisa 04-07-2014 23:23:58

Hola maxi915.

Cita:

Empezado por maxi915 (Mensaje 478723)
... lo que necesito es obtener el siguiente registro a un registro ya obtenido.
...

En Access podes hacer:
Código SQL [-]
SELECT TOP 1 ID 
FROM TU_TABLA
WHERE ID > :PRV_ID 
ORDER BY ID
Donde el valor del parámetro PRV_ID será el ID del registro ya obtenido.

Saludos :)

maxi915 05-07-2014 05:32:25

me tirar error de parametro mal definido....

Código Delphi [-]
procedure siguienteRegistro(queryTurnoCliente:TADOQuery; var id_turno:Integer);
begin
 With queryTurnoCliente do
    begin
      SQl.Clear;
      SQL.Add('select top 1 id from turnoCliente where id_turno> :Id_turno order by id_turnoCliente');
      Open;
end;
end;

ecfisa 05-07-2014 06:10:21

Hola.

No me queda en claro cuál es la columna que identifica numéricamente cada fila...

Si su nombre es ID, intenta de este modo:
Código Delphi [-]
function NearMaxID(Qry: TADOQuery; const PrevID: Integer): Integer;
begin
  Qry.Close;
  Qry.SQL.Clear;
  Qry.SQL.Add('SELECT TOP 1 ID FROM TURNOCLIENTE');
  Qry.SQL.Add('WHERE ID > :PRV_ID ORDER BY ID');
  Qry.Parameters.ParamByName('PRV_ID').Value:= PrevID;
  Qry.Open;
  Result:= Qry.FieldByName('ID').AsInteger;
  Qry.Close;
end;
Si se llama id_turno, reemplazalo en cada ocurrencia de ID (en rojo).

Saludos :)


La franja horaria es GMT +2. Ahora son las 22:32:21.

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