Ao dar Insert retorna todos os registros da tabela.

Delphi

11/04/2012

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

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

11/04/2012

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

Joel Rodrigues

11/04/2012

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?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

11/04/2012

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?
GOSTEI 0
Adilson Rumao

Adilson Rumao

11/04/2012

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.
GOSTEI 0
Bruno Leandro

Bruno Leandro

11/04/2012

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
GOSTEI 0
Adilson Rumao

Adilson Rumao

11/04/2012

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.
GOSTEI 0
Bruno Leandro

Bruno Leandro

11/04/2012

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
GOSTEI 0
Adilson Rumao

Adilson Rumao

11/04/2012

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.
GOSTEI 0
Bruno Leandro

Bruno Leandro

11/04/2012

fico feliz em poder ajudar. qualquer duvida manda bala
GOSTEI 0
POSTAR