mcsmarmcs 0 Denunciar post Postado Maio 5, 2007 Alguém sabe como fazer um autoincremento pegando a informação do último registro e acrescentando +1.Ex: Tenho um campo chamado ordem que é do tipo integer, preciso pegar o último registro desse campo e acrescentar +1. Mas não posso usar o MySQL pra fazer isso pois ele já está fazendo outro autoincremento nesta tabela. Preciso fazer isso na interface. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 5, 2007 você pode fazer usando uma query mesmo: var prox: integer;beginqry.Close;qry.Sql.Clear;qry.Sql.Add('select max(campo_desejado) as Proximo');qry.Sql.Add('from tabela');qry.Open;prox:=qry.FieldByName('PROXIMO').AsInteger;Inc(prox);Na variável prox vai estar o próximo valor para a tabela...end; Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 7, 2007 Não estou conseguindo trabalhar com MAX.O sistema pede outros campos tb, mas não consigo resolver.Estou usando MySQL, talvez os parâmetros sejam diferentes. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 7, 2007 Como esta montando a sua query ?Qual a versão do seu MySQL ? Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 7, 2007 Estou usando MySQL 5.Estou usando a consulta SQL no botão inserir novo registro, evento OnClick. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 7, 2007 Ok. O que acontece ? Gera erro ? Não funciona, alguma mensagem ? Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 7, 2007 A mensagem de erro é: "Project Sistema.exe raised exception class EDatabaseError with message QRYfuturo: Field 'cod_empresa' not found".O código está abaixo:procedure TFRMfuturo.Button2Click(Sender: TObject);var prox: integer;begin QRYfuturo.Close; QRYfuturo.Sql.Clear; QRYfuturo.Sql.Add('select max(ordem) as Proximo'); QRYfuturo.Sql.Add('from futuro'); QRYfuturo.Open; prox:=QRYfuturo.FieldByName('PROXIMO').AsInteger; Inc(prox);end; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 8, 2007 Esse erro é pq você tem no FieldEditor o campo cod_empresa, sendo que você repassa o SQL e não menciona este campo, no caso teria de remover todos os campos do FieldEditor. Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 9, 2007 Agora não deu mais erro, porem não encontro o local correto para colocar um insert.Esse comando deve estar em um campo de inserção de novo registro e o campo ordem deve ser exibido em um edit. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 9, 2007 Coloca a chamada do evento para novo registro e atribuição em uma botão mesmo...tabela.Insert;chama novo código e depois atribui Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 10, 2007 Não entendi, pode ser mais específico? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 10, 2007 Mais específico como ? Não tem segredos, basta dar um Insert na tabela, fazer a busca pelo novo código e atribuir o valor. procedure TFRMfuturo.Button2Click(Sender: TObject);varprox: integer;beginQRYfuturo.Close;QRYfuturo.Sql.Clear;QRYfuturo.Sql.Add('select max(ordem) as Proximo');QRYfuturo.Sql.Add('from futuro');QRYfuturo.Open;prox:=QRYfuturo.FieldByName('PROXIMO').AsInteger;Inc(prox);tabela.Insert;tabelaCAMPO_CHAVE.Value:=prox;end; Compartilhar este post Link para o post Compartilhar em outros sites
mcsmarmcs 0 Denunciar post Postado Maio 11, 2007 Funcionou, valeu! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 12, 2007 beleza... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites