Ilano 0 Denunciar post Postado Junho 18, 2007 Olá pessoal, Para eu gerar um contador estou usando a seguinte SQL: SELECT MAX(Ped_Codigo + 1) AS Contador FROM TB_PedidosO resultado é jogado para uma variável, caso o resultado retorne nulo a variável será igual a 1.Até aí tudo bem, pois está fazendo o procedimento direitinho. Porém, quando parto para a tabela de detalhes, como posso fazer com q o número daquele pedido seje enviado para essa segunda tabela (detalhes) caso o sistema esteja sendo usado por duas ou mais pessoas? Por enquanto estou fazendo assim: o usuário cadastra o pedido, este vai para um DataGrid, daí o usuário seleciona aquele pedido q ele fez e o código do pedido é levado para uma variável, daí gero a sql SELECT MAX(Det_Codigo + 1) AS Contador FROM TB_Detalhes para criar o contador desta tabela e faço o pedido. Bom, o q eu gostaria de saber é se exisitiria uma forma de eu fazer isso de uma forma mais rápida, tipo, o usuário preencher pedidos e detalhes e num só clique co botão salvar já enviar tudo de uma vez pro banco, sem q ter q precisar cadastrar o pedido, selecionar o pedido cadastrado e cadastrar o detalhes do pedido, mas de uma forma q me garanta os relacionamentos. Grato, Ilano. Compartilhar este post Link para o post Compartilhar em outros sites
Graymalkin 0 Denunciar post Postado Junho 19, 2007 Uma pergunta importante: qual o banco utilizado? No Access eu recomendaria a você criar uma tabela só para armazenar o próximo número de pedido. Desta maneira, quando um usuário começasse a fazer um pedido você iria nesta tabela, pegaria o valor atual e incrementaria mais um nele, gravando no banco. Esse valor atual você iria usar para o seu pedido. O esquema seria algo assim: Usuário 1: pega o valor 51 do campo Pedido da tabela Contadores e grava o valor 52 neste mesmo campo; Usuário 1: está digitando o pedido; Usuário 2: pega o valor 52 do campo Pedido da tabela Contadores e grava o valor 53 neste mesmo campo; Usuário 2: está digitando o pedido; Usuário 1: finalizou o pedido (todos os itens são gravados com o nº de pedido 51) Usuário 1: finalizou o pedido (todos os itens são gravados com o nº de pedido 52) Agora, se você estiver usando o PostgreSQL como banco de dados não terá esse problema, já que você tem como obter o valor de um campo serial (autonumeração) logo após a inserção do registro. Abraços, Graymalkin Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Junho 19, 2007 Utilizo o SQLServer 2005. No Access eu recomendaria a você criar uma tabela só para armazenar o próximo número de pedido. Desta maneira, quando um usuário começasse a fazer um pedido você iria nesta tabela, pegaria o valor atual e incrementaria mais um nele, gravando no banco. Esse valor atual você iria usar para o seu pedido.Essa tabela seria algo do tipo:Cont_Codigo (onde armazenará o número do pedido)Cont_Data (onde armazenará a data e hora do pedido dd/mm/yy hh:mm:ss) Compartilhar este post Link para o post Compartilhar em outros sites
Graymalkin 0 Denunciar post Postado Junho 21, 2007 Utilizo o SQLServer 2005. No Access eu recomendaria a você criar uma tabela só para armazenar o próximo número de pedido. Desta maneira, quando um usuário começasse a fazer um pedido você iria nesta tabela, pegaria o valor atual e incrementaria mais um nele, gravando no banco. Esse valor atual você iria usar para o seu pedido.Essa tabela seria algo do tipo:Cont_Codigo (onde armazenará o número do pedido)Cont_Data (onde armazenará a data e hora do pedido dd/mm/yy hh:mm:ss) Não precisa da data e hora, até porque esta tabela só terá 1 registro. E este é que será atualizado a cada pedido.Agora, será que no SQL Server não tem como fazer igual ao PostgreSQL? Ou seja, usando um campo do tipo auto-numeração?Abraços,Graymalkin Compartilhar este post Link para o post Compartilhar em outros sites
eriva_br 7 Denunciar post Postado Junho 21, 2007 Agora, será que no SQL Server não tem como fazer igual ao PostgreSQL? Ou seja, usando um campo do tipo auto-numeração?tem o identiy: http://forum.imasters.com.br/index.php?showtopic=179400abs Compartilhar este post Link para o post Compartilhar em outros sites