Fórum Ao dar Insert retorna todos os registros da tabela. #415300

11/04/2012

0

Boa tarde galera estou aqui com mais uma dúvida e não consigo resolver.
Assim: No botão de incluir tenho este trexo de código.
procedure TfrmCadPadrao.actIncluirExecute(Sender: TObject);
begin
  try
    pgcPrincipal.ActivePage:= tabCadastro;
    if not DS.DataSet.Active then
    DS.DataSet.Open;
    DS.DataSet.Insert;
  except
    on e: exception do
      ShowMessage(Problemas ao incluir o Registro... + #13 + Erro + e.Message);
end;

Até aí tudo bem, inclui certinho. O problema é que ele está retornando todos os registros da tabela após a inclusão. O que estaria errado visto que, eu tenho que abrir a tabela e dar o Insert.
Adilson Rumao

Adilson Rumao

Responder

Posts

11/04/2012

Bruno Leandro

talvez o problema seja apos o post. depois do post voce da close/open, pra dar refresh na query?
Responder

Gostei + 0

11/04/2012

Joel Rodrigues

Como assim retornando todos os registros? Se sua tabela está programada para trazer todos os registros, após insert/delete/update ela será atualizada, é normal.
Pode especificar melhor a questão?
Responder

Gostei + 0

11/04/2012

Joel Rodrigues

Como assim retornando todos os registros? Se sua tabela está programada para trazer todos os registros, após insert/delete/update ela será atualizada, é normal.
Pode especificar melhor a questão?
Responder

Gostei + 0

11/04/2012

Adilson Rumao

Então Joel assim:
Ao entrar no Form vem com o DBGrid vazio certo?
Se clico no botão Incluir ele vira a aba, pois tenho um PageControl com duas abas: tabConsulta e tabCadastro.
Clico no Incluir, Vira a aba, incluo os dados e quando mando gravar, ele volta para a tabConsulta mas, com todos os registros da tabela na tela e não somente com o que acabei de incluir.
Responder

Gostei + 0

11/04/2012

Bruno Leandro

na verdade não é um erro pois a sua sql não deve conter where com o codigo gerado, então ao usar o dataset.open; ele ira retornar todos os registros, caso queria retornar apenas o codigo gerado voce pode filtar pelo codigo gerado apos o post
Responder

Gostei + 0

11/04/2012

Adilson Rumao

Desculpe mas, não entendi direito o que você falou.
Com base no que postei acima teria como você me passar um exemplo?

Desde já obrigado pela atenção.
Responder

Gostei + 0

11/04/2012

Bruno Leandro

na sua query voce tem por exemplo: select campo1, campo2, campo3, campo4 from tabela
ai quando voce usa o query.open; todos os registros serão retornados. caso voce queira que apos o post a query só retorne o codigo inserido voce pode usar o where ou usar o filter, mas como voce tem uma tela de cadastro/consulta juntos caso os registros sejam filtrados apos o post, teria que ver em qual momento voce excluiria este filtro
Responder

Gostei + 0

12/04/2012

Adilson Rumao

Valeu pela dica Bruno, estou fazendo assim e no primeiro teste deu tudo certo.
Código do Botão Incluir:
  strSQL := SELECT * FROM  + nomeTabela;
  strSQL := strSQL +  WHERE CODIGO_ + sufixoTabela + = + #39 + 0 + #39;

  Executar := sentencaSQL;
  Executar := navegacao;
  Executar:= desabilitaBotoes;
  Executar:= exibePanels;


No DataModule:
SQLDataSet = select * from TESTE2 where codigo_tes = :id

E seto o Fetch Params no ClientDataSet

Não sei se esta seria a melhor prática, vou continuar com os testes mas, parece que resolveu.
Valeu pela força.
Responder

Gostei + 0

12/04/2012

Bruno Leandro

fico feliz em poder ajudar. qualquer duvida manda bala
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar