Navegando para o Registro anterior usando dbexpress e clientdataset
10/11/2009
0
Pessoal estou com uma dúvida que não estou conseguindo resolver,
é o seguinte eu nao estou conseguindo navegar para o registro anterior de uma tabela no banco de dados estou usando clientdataset+dbexpress+firebird 1.5
alguem saberia me dizer como resolver esse problema? segue abaixo o meu código.
procedure Anterior();
begin
frmGrupoProdutos.cdsGrupoProdutos.Active := False;
frmGrupoProdutos.cdsGrupoProdutos.Active := True;
frmGrupoProdutos.cdsGrupoProdutos.Prior;
frmGrupoProdutos.txtCod.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['COD_GRUPO_PRODUTO'];
frmGrupoProdutos.txtNome.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['NOME_GRUPO_PRODUTO'];
frmGrupoProdutos.txtDesc.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['DESCRICAO'];
{Procedimento Anterior = seleciona o registro anterior}
end;
procedure TfrmGrupoProdutos.TbtnAnteriorClick(Sender: TObject);
var
Cod,Nome,Desc:string;
Nomepesquisa:integer;
begin
{Nomepesquisa := 0;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select COUNT(grupo_produtos.nome_grupo_produto) from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
Nomepesquisa := frmGrupoProdutos.cdsGrupoProdutos.FieldByName('COUNT').AsInteger;
if (Nomepesquisa > 0 ) then
begin}
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select * from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true; //Verifica se o Banco de Dados não esta Vazio
Cod:='';
Nome:='';
Desc:='';
{ Primeiro(Cod,Nome,Desc);}
txtCod.Text:=Cod;
txtNome.Text:=Nome;
txtDesc.Text:=Desc;
Anterior(Cod,Nome,Desc); //Chama a Procedure Anterior
end;
else
begin
Showmessage('O Cadastro está vazio, é impossivel mover para o primeiro registro.');
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select * from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
end;
end;
Alguém saberia me dizer porque não consigo mover para o registro anterior, ele vai direto para o primeiro registro.
é o seguinte eu nao estou conseguindo navegar para o registro anterior de uma tabela no banco de dados estou usando clientdataset+dbexpress+firebird 1.5
alguem saberia me dizer como resolver esse problema? segue abaixo o meu código.
procedure Anterior();
begin
frmGrupoProdutos.cdsGrupoProdutos.Active := False;
frmGrupoProdutos.cdsGrupoProdutos.Active := True;
frmGrupoProdutos.cdsGrupoProdutos.Prior;
frmGrupoProdutos.txtCod.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['COD_GRUPO_PRODUTO'];
frmGrupoProdutos.txtNome.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['NOME_GRUPO_PRODUTO'];
frmGrupoProdutos.txtDesc.Text := frmGrupoProdutos.cdsGrupoProdutos.FieldValues['DESCRICAO'];
{Procedimento Anterior = seleciona o registro anterior}
end;
procedure TfrmGrupoProdutos.TbtnAnteriorClick(Sender: TObject);
var
Cod,Nome,Desc:string;
Nomepesquisa:integer;
begin
{Nomepesquisa := 0;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select COUNT(grupo_produtos.nome_grupo_produto) from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
Nomepesquisa := frmGrupoProdutos.cdsGrupoProdutos.FieldByName('COUNT').AsInteger;
if (Nomepesquisa > 0 ) then
begin}
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select * from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true; //Verifica se o Banco de Dados não esta Vazio
Cod:='';
Nome:='';
Desc:='';
{ Primeiro(Cod,Nome,Desc);}
txtCod.Text:=Cod;
txtNome.Text:=Nome;
txtDesc.Text:=Desc;
Anterior(Cod,Nome,Desc); //Chama a Procedure Anterior
end;
else
begin
Showmessage('O Cadastro está vazio, é impossivel mover para o primeiro registro.');
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
frmGrupoProdutos.QueryGrupos.Active:=false;
frmGrupoProdutos.QueryGrupos.SQL.Clear;
frmGrupoProdutos.QueryGrupos.SQL.Add('select * from GRUPO_PRODUTOS');
frmGrupoProdutos.QueryGrupos.ExecSQL;
frmGrupoProdutos.cdsGrupoProdutos.Active:=false;
frmGrupoProdutos.cdsGrupoProdutos.Active:=true;
end;
end;
Alguém saberia me dizer porque não consigo mover para o registro anterior, ele vai direto para o primeiro registro.
Alexandre Rodrigues
Curtir tópico
+ 0
Responder
Posts
10/11/2009
Alexandre Rodrigues
Pessoal Consegui resolver o Problema....
eu estava atualizando o clientdataset quando não deveria na parte de verificação dos registros
Obrigado pela ajuda de todos,
vida de programador junior é assim mesmo!!!
Como dizem é de pequeno que se torçe o pepino!!!!
eu estava atualizando o clientdataset quando não deveria na parte de verificação dos registros
Obrigado pela ajuda de todos,
vida de programador junior é assim mesmo!!!
Como dizem é de pequeno que se torçe o pepino!!!!
Responder
Clique aqui para fazer login e interagir na Comunidade :)