Alguém tem um exemplo deste problema q possa me enviar???

Delphi

03/01/2004

aos meus colegas e aos moderadores do clube, desculpe-me a minha insistência, mais esta é a primeira vez que tou começando a fazer alguma aplicação para ser usado em rede, sendo que até mesmo desktop eu tenho dificuldades, comprei um livro da editora erika pensando que conseguiria resolver meu problema, mais infelismente não, por isso mais uma vez gostaria que se alguém tiver um exemplo escrito ou fonte de uma parte do sistema e que possa me enviar ficaria muito grato, reveja meu problema abaixo;

uso firebird com dbexpress

A questão é sobre Pedido e itens do pedidos, eu só posso obter o numero do pedido quando eu mandar gravar o pedido com os itens, e preciso guardar a sequencia de pedidos, lembrando que insiro os itens dentro do próprio dbgrid.

´Bom vejam bem eu não posso gravar somente o cabeçalho para depois gravar os itens, pois pode dar um pique de energia e ficar somente o cabeçalho do pedido gravado sem ter os itens, então eu só posso mandar gravar quando o usuário tiver colocado o cabeçalho e os itens´

Espero que alguém possa me ajudar neste problema meu email é jelves@bol.com.br

e mais uma vez pesso desculpas aos moderadores por tá repetindo o mesmo questionamento!


Jelves

Jelves

Curtidas 0

Respostas

Alex.costa

Alex.costa

03/01/2004

Amigo não prestei atenção ao clicar e acabei respondendo sua dúvida num outro tópico.

http://delphiforum.icft.com.br/forum/viewtopic.php?t=31585&sid=fa784ebc92f9eb233fa66d8c246e58d2

Espero que ajude


GOSTEI 0
Jelves

Jelves

03/01/2004

olá alex, obrigado, mais acho q não entendi..
Na minha tabela de pedido também tem um generator exclusivo para ela já na de itens eu não preciso de um generator..bom como vc fez para inserir os itens no dbgrid sem ter o numero do pedido?, pelo que entendi vc usando client dataset, lançou os dados do cabeçalho em uma parte superior do seu form e os itens no dbgrid e quando vc clicou no botão gravar vc puxou o generator e fez um while no itens de pedido colocando assim este numero, se estiver errado por favor me corrija e se vc puder mandar fonte ou por escrito como foi feito sua solução ficou muito grato.

Jelves


GOSTEI 0
Rnovak

Rnovak

03/01/2004

Já me deparei com este problema.
Resolvi assim:
1) Criei uma Stored Procedure no Banco de Dados que realiza que usa o generator retornando para a aplicação o resultado.
2)Antes de usar o insert propriamente dito, recupero o valor da chave primária através da procedure e somente após isso realizo o insert ou dependendo como você omontou sua aplicação, recupera o valor no beforePost atualizando todos os campos conforme necessário antes do applyUpdates.
3) Nesta estratégia reside o problema de ser necessário um rollback das atualizações. Neste caso você conseguirá desfazer o insert mas o generator não. Se sua aplicação necessariamente tiver que usar uma sequencia exata como para nota fiscal, sem pular números, você terá que ter um cuidado adicional a respeito. Talvez criar rotinas próprias para isso.


GOSTEI 0
POSTAR