Ao dar Insert retorna todos os registros da tabela.
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.
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.
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
Curtidas 0
Respostas
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
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?
Pode especificar melhor a questão?
GOSTEI 0
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?
Pode especificar melhor a questão?
GOSTEI 0
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.
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
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
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.
Com base no que postei acima teria como você me passar um exemplo?
Desde já obrigado pela atenção.
GOSTEI 0
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
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
11/04/2012
Valeu pela dica Bruno, estou fazendo assim e no primeiro teste deu tudo certo.
Código do Botão Incluir:
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.
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
11/04/2012
fico feliz em poder ajudar. qualquer duvida manda bala
GOSTEI 0