wllf 2 Denunciar post Postado Outubro 15, 2009 Estou utilizando um contador querycontador e uma tabela master (Venda) e uma tabela (detalhe) Item com os seguintes campos(n° Venda, Cod._item, N°_item), mas para cada venda eu preciso zerar somente o contador do N°_item, ou seja, venda nova o N°_item começa do 1 mas estou conseguindo. Delphi 7, BD access, componentes ADO. Caso alguém possa me ajudar valeu ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 15, 2009 Como esta fazendo o SQL do contador? Esta filtrando para somente aquela venda? Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 16, 2009 Como esta fazendo o SQL do contador? Esta filtrando para somente aquela venda? Marcio No caso do N°_Item não estou filtrando, só uso o SQL pra gerar o contador, ou seja, aquele código 'SELECT MAX(N_ITEM) FROM TBLITENVENA', até aí tudo bem, mas o N°_item tem que zerar para uma nova venda. Caso você tenha alguma idéia para o SQL, posta aí valeu ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 16, 2009 Para cada itens da venda você precisa começar do 1, se usar o sql: SELECT MAX(N_ITEM) FROM TBLITENVENA Você estará pegando o próximo código sobre todos os itens da tabela. No caso precisa ainda filtrar para somente daquela venda, fazendo: SELECT MAX(N_ITEM) FROM TBLITENVENA WHERE COD_VENDA = xyz Onde que "xyz" é o código da venda que esta. Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 16, 2009 [. No caso precisa ainda filtrar para somente daquela venda, fazendo: SELECT MAX(N_ITEM) FROM TBLITENVENA WHERE COD_VENDA = xyz Onde que "xyz" é o código da venda que esta. Márcio legal, só tenho uma dúvida COD_VENDA = 'xyz' esse COD_VENDA também é auto - increment, e como para cada venda existe um COD-VENDA, como eu faço para capturar esse valor no select acima, se eu entendi bem é a partir dele que a SQL será ativada. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 16, 2009 Antes de começar a inserir, teria de dar um post na tebala para salvar, e então pegar o número da venda para fazer o sql. Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 16, 2009 Lega Márcio, então após o contador a query selecionar o máximo valor COD_ITEM e adicionar o N_item eu tenho que dar um edit na tabela para inserir o N_Item no mesmo registro corrente. Caso eu esteja errado me corrija. Vou testar Márcio, qualquer problema eu posto de novo. Valeu Mácio pela força .... Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 16, 2009 Márcio o código seria + ou - assim: 'Select Max(N_ITEM) from tblitenvenda where COD_VENDA =' 'COD_VENDA.tblvenda' Minha dúvida é qual COD_VENDA eu vou buscar é o tblvenda que é a master, porque preciso zerar o N_ITEM e mudando o COD_VENDA ele vai zerar ? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 16, 2009 Isso, no caso precisa pegar da tabela master. Exemplo usando uma query: var prox: integer; begin prox:=0; query.Close; query.SQL.Clear; query.SQL.Add('Select Max(N_ITEM) as Proximo'); query.SQL.Add('from tblitenvenda'); query.SQL.Add('where COD_VENDA = ' + IntToStr(tblvendaCOD_VENDA.Value)); query.Open; if (not query.IsEmpty) then prox:=query.FieldByName('PROXIMO').AsInteger; query.Close; Inc(prox); tblVendaItemN_ITEM.Value:=prox; end; Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 17, 2009 Márcio tá dificil, esse linha abaixo: query.SQL.Add('Select Max(N_ITEM) as Proximo'); Essa (Próximo) não é uma palavra reservado do sql, é qual tipo de comando. Não tenho muita experiência ou quase nenhuma em programação e nem SQL, estou começando agora, mas pesquisar e ler isso eu faço. Em todo agradeço a força que você está dando! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 17, 2009 O "Proximo" é um renomeação de SQL, o comando "AS" renomeia um campo... Se colocar por exemplo: select nome as NomeCliente from cliente O SQL irá gerar a coluna como "NomeCliente" Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Outubro 17, 2009 Márcio eu perguntei sobre as palavras mas, eu achei a porque. Sobre o código que você me enviou eu testei e deu certo, gerou um erro, mas acho que sei o porque. Quando eu criei a tabela itenvenda o N_ITEM eu coloquei como chave primária e sendo asim ele não pode ser duplicado. Acho que se eu retirar a chave não vai mas dar esse erro. Valeu Márcio pela força, qualquer eu aviso ! Compartilhar este post Link para o post Compartilhar em outros sites