ClientDataSet

Delphi

26/02/2008

Srs.,

estou criando um cadastro de produtos e estou usando o ClientDataSet,
a minha tabela tem os campos ProdutoID e NomeProduto, o campo ProdutoID é AutoInc.

Vamos ao problema que estou tendo, quando digito o nome do produto e mando salvar é criado um registro na tabela é gerado o ID automaticamente e o campo NomeProduto com as informações que digitei no formulário do Delphi só que o ID não aparece no formulário.

Quando utilizo o componente ADOQuery o ID aparece no formulário.

Vocês sabem como resolvo isso usando o ClienteDataSet?

Att,


Luciano.lirio

Luciano.lirio

Curtidas 0

Respostas

Marco Salles

Marco Salles

26/02/2008

não entendi ... Voce digita num formulário e quer visualizar em outo formulário ????


GOSTEI 0
Luciano.lirio

Luciano.lirio

26/02/2008

eu criei a tela de cadatro com o ProdutoID e o NomeProduto, como o campo ProdutoID é AutoInc eu preencho apenas o NomeProduto quando mando salvar o código gerado automaticamente no campo ProdutoID não aparece no formulário isso usando o componente ClientDataSet mas quando troco pelo componente ADOQuery e mando salvar o ID gerado automaticamente na tabela aparece no formulário...

Resumindo, quando estou usando o ClientDataSet no cadastro e as informações são incluidas o ID que é gerado automaticamente na tabela não retorno e quando uso o ADOQuery retorna.

Att,


GOSTEI 0
Hall 9000

Hall 9000

26/02/2008

Se é ID é gerado no banco por uma trigger por exemplo e apenas não está aparecendo no form, experimente chamar o método Refresh após o AppyUpadates(0);
assim:
cdsProduto.Refresh;
Espero que tenha ajudado.
falou!


GOSTEI 0
Marco Salles

Marco Salles

26/02/2008

eu criei a tela de cadatro com o ProdutoID e o NomeProduto, como o campo ProdutoID é AutoInc eu preencho apenas o NomeProduto quando mando salvar


engraçado , a principio deveria dar erro que o Campo Id Deve ser Preenchido ... Mesmo sabendo que ele é AutoIncremento na Base de Dados

Voce esta dando Um Post ou Um ApplyUpdates ???????


Este campo ID é Requerido ???? pq se deixa-lo em Branco deveria Tb Dar erro

Desculpa , mas antes de dar uma Opinião , gosto de entender o que se passa ....


GOSTEI 0
Luciano.lirio

Luciano.lirio

26/02/2008

Marco Salles, o campo é requerido mas como é autoinc não da erro o problema é que quando salvo o registro o valor gerado automaticamente na base de dados não retorna...


GOSTEI 0
Luciano.lirio

Luciano.lirio

26/02/2008

Hall 9000, estou dando um post e um AppyUpadates(0) mas como estou usando select * from ProdutoID is null quando abro o cadastro para não trazer todos registro o Refresh fas o registro cadastrado sumir...

com o ADOQuery eu não tenho esse problema pq o ID gerado automaticamente pela base de dados é atualizado no form após o Post e não preciso usar o Refresh.


GOSTEI 0
Paullsoftware

Paullsoftware

26/02/2008

Desculpe a intromissão, mas o que o Marcos está querendo dizer é que: O ClientDataSet trabalha com os dados em Memória, e quando você dá Post depois o Applyupdates(0) ele grava no banco, mais para vc receber o valor do código gerado no banco, você deve disparar o Gerador e pegar esse novo valor na aplicação cliente, os tópicos abaixo podem te orientar um pouco melhor sobre o assunto...
[url=http://forum.devmedia.com.br/viewtopic.php?t=91850]Gravando Campo ID no Detail[/url]
[url=http://forum.devmedia.com.br/viewtopic.php?t=80640]Mestre/Detalhe (era... Senão é bug oq que é então?)[/url]
[url=http://forum.devmedia.com.br/viewtopic.php?t=86459]Problemas de inserção em DbGrid e Firebird[/url]
Espero ter ajudado :wink:


GOSTEI 0
POSTAR