Ajuda: dbgrid 10 registros por vez
Como faço para exibir no dbgrid apenas 10 registros por vez? E depois programar um botõa avançar (+10) e retornar (-10)?
Pedro
Curtidas 0
Respostas
Marcos Saffran
11/12/2013
Olá Pedro,
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
GOSTEI 0
Pedro
11/12/2013
Blz Marcos,
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Olá Pedro,
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
GOSTEI 0
Marcos Saffran
11/12/2013
Blz Marcos,
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Olá Pedro,
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
Para o Primeiro select tente:
select * from 'tabela' limit 0, 10
Para o Segundo:
select * from 'tabela' limit 10, 10
usando o limit inicio, quantidade de linhas, então é só criar uma variável global que guardará o início, assim para avançar será a variável global + 10 e para retroceder será a variável global - 10 (limitando a 0).
GOSTEI 0
Pedro
11/12/2013
Marcos, bom dia
Desculpa a minha ignorancia, mas não entedi muito bem a questão da variavél global. Teria como me dar um explo de código?
Desde já agradeço,
Para o Primeiro select tente:
select * from 'tabela' limit 0, 10
Para o Segundo:
select * from 'tabela' limit 10, 10
usando o limit inicio, quantidade de linhas, então é só criar uma variável global que guardará o início, assim para avançar será a variável global + 10 e para retroceder será a variável global - 10 (limitando a 0).
Desculpa a minha ignorancia, mas não entedi muito bem a questão da variavél global. Teria como me dar um explo de código?
Desde já agradeço,
Blz Marcos,
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Olá Pedro,
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
Para o Primeiro select tente:
select * from 'tabela' limit 0, 10
Para o Segundo:
select * from 'tabela' limit 10, 10
usando o limit inicio, quantidade de linhas, então é só criar uma variável global que guardará o início, assim para avançar será a variável global + 10 e para retroceder será a variável global - 10 (limitando a 0).
GOSTEI 0
Pedro
11/12/2013
O 'limit' não funcionou no firibird o que faço?
Marcos, bom dia
Desculpa a minha ignorancia, mas não entedi muito bem a questão da variavél global. Teria como me dar um explo de código?
Desde já agradeço,
Para o Primeiro select tente:
select * from 'tabela' limit 0, 10
Para o Segundo:
select * from 'tabela' limit 10, 10
usando o limit inicio, quantidade de linhas, então é só criar uma variável global que guardará o início, assim para avançar será a variável global + 10 e para retroceder será a variável global - 10 (limitando a 0).
Desculpa a minha ignorancia, mas não entedi muito bem a questão da variavél global. Teria como me dar um explo de código?
Desde já agradeço,
Blz Marcos,
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Entendi. Mas e no caso do botão para avançar e retornar? Saberia me dizer como ficaria?
Olá Pedro,
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
você pode alterar o comando select da query, incluindo o limit.
select * from 'tabela' limit 10 (buscará 10 registros)
select * from 'tabela' limit 5, 10 (buscará os registros de 6 a 10)
Para o Primeiro select tente:
select * from 'tabela' limit 0, 10
Para o Segundo:
select * from 'tabela' limit 10, 10
usando o limit inicio, quantidade de linhas, então é só criar uma variável global que guardará o início, assim para avançar será a variável global + 10 e para retroceder será a variável global - 10 (limitando a 0).
GOSTEI 0
Marcos Saffran
11/12/2013
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnRetroceder: TButton;
btnAvancar: TButton;
Edit1: TEdit;
procedure btnAvancarClick(Sender: TObject);
procedure btnRetrocederClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
LinhaBD : Integer = 0; //variável global, iniciando com 0
implementation
{$R *.dfm}
procedure TForm1.btnAvancarClick(Sender: TObject);
begin
LinhaBD := LinhaBD + 10;
//abaixo você colocará os comandos do select
'select * from 'tabela' limit ' + LinhaBD + ',10;';
end;
procedure TForm1.btnRetrocederClick(Sender: TObject);
begin
LinhaBD := LinhaBD - 10;
if LinhaBD < 0 then
LinhaBD := 0;
//abaixo você colocará os comandos do select
'select * from 'tabela' limit ' + LinhaBD + ',10;';
end;
end.GOSTEI 0
Marcos Saffran
11/12/2013
Para as versões acima da 2 do firebird, há o 'rows'.
Depois do select você coloca
ROWS <m> [TO <n>]
onde o m é a linha inicial e o n é a linha final.
então no exemplo que enviei coloque assim
'select * from 'tabela' rows ' + IntToStr(LinhaBD) + ' to ' + IntToStr(LinhaBD + 10);
Obs:
1 - o ROWS deve ficar no final do comando.
2 - o m e o n devem ser maior ou igual a 1, portanto altere o valor inicial da variável LinhaBD para 1 e no if do botão retroceder troque o zero pelo um 1.
Depois do select você coloca
ROWS <m> [TO <n>]
onde o m é a linha inicial e o n é a linha final.
então no exemplo que enviei coloque assim
'select * from 'tabela' rows ' + IntToStr(LinhaBD) + ' to ' + IntToStr(LinhaBD + 10);
Obs:
1 - o ROWS deve ficar no final do comando.
2 - o m e o n devem ser maior ou igual a 1, portanto altere o valor inicial da variável LinhaBD para 1 e no if do botão retroceder troque o zero pelo um 1.
GOSTEI 0
Pedro
11/12/2013
Agora consegui! Muito obrigado mesmo pela ajuda e paciência.
Abs amigo,
Abs amigo,
Para as versões acima da 2 do firebird, há o 'rows'.
Depois do select você coloca
ROWS <m> [TO <n>]
onde o m é a linha inicial e o n é a linha final.
então no exemplo que enviei coloque assim
'select * from 'tabela' rows ' + IntToStr(LinhaBD) + ' to ' + IntToStr(LinhaBD + 10);
Obs:
1 - o ROWS deve ficar no final do comando.
2 - o m e o n devem ser maior ou igual a 1, portanto altere o valor inicial da variável LinhaBD para 1 e no if do botão retroceder troque o zero pelo um 1.
Depois do select você coloca
ROWS <m> [TO <n>]
onde o m é a linha inicial e o n é a linha final.
então no exemplo que enviei coloque assim
'select * from 'tabela' rows ' + IntToStr(LinhaBD) + ' to ' + IntToStr(LinhaBD + 10);
Obs:
1 - o ROWS deve ficar no final do comando.
2 - o m e o n devem ser maior ou igual a 1, portanto altere o valor inicial da variável LinhaBD para 1 e no if do botão retroceder troque o zero pelo um 1.
GOSTEI 0