Auto incremento no Delphi com MySQL
13/03/2017
Novo por aqui, tenho a seguinte dúvida: como faço para gerar ID automático no Delphi? Uso o Banco MySQL. Atualmente já uso uma função para fazer isso, mas gostaria de saber como transferir essa responsabilidade para o Banco, embora eu deixa o campo ID como Auto incremento, se eu não passar o valor valor do ID através da função que eu chamo ele vai requerer que o campo campo id seja repassado também. Desde já agradeço.
Obs: já Coloquei a Propriedade Requerid do ID como Falso
Boa tarde Edivania.
Para criar uma tabela no MySQL que gere um campo id com auto incremento basta incluir o comando "auto_increment".
CREATE TABLE XPTO (
ID INTEGER NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
);
Supondo que seu campo já exista e já tenha valores nele use isso para iniciar de um valor específico.
ALTER TABLE XPTO AUTO_INCREMENT=1001;
Grande abraço
Mais Posts
Qual componente, ou conjunto de componentes, está usando?
14/03/2017
Jones Granatyr
Opa! Se você utilizar os componentes da paleta FireDAC não precisa configurar nada. É só definir o campo autoincremento no banco de dados e os próprios componentes farão o trabalho (use FDConnection e FDQuery)
Edivania,
O MySQL já faz o auto incremento sozinho.
Talvez a alteração necessária esteja no código da sua função. Por que é obrigatório informar o ID para criar um registro ?
Obrigado pelas dicas, eu uso um trio de componentes, SetDataSet, DataSetProvider e ClientDataSet, consegui resolver o problema colocando a propriedade requerid do meu campo id como falso tanto, no clientdaset quanto no setdaset, o problema era que eu tinha colocado falso apenas no clientdaset. o resto já estava ok no banco, porém agora surgiu outro problema, e aproveitando a oportunidade por aqui, alguém poderia me informar como relacionar tabelas com chave primaria e estrangeira? Na Realidade já fiz essa relação no Banco mas o devo fazer no delphi?
Boa tarde Edvania.
Você só precisa tomar cuidado com a Integridade Referencial.
Por exemplo, antes de excluir um registro na tabela pai (a que cede a chave) verificar se a tabela filha (a que recebe a chave) possui algum registro vinculado.
O mesmo vale para o INSERT.
Espero ter ajudado.
Grande abraço
07/07/2020
Socrates Foschera
ola tudo bem pessoal preciso de ajuda desenvolvi um programa de cadastro de cliente com ficha de seguimento para o cadastro do trator dai tudo bem porem quando salvo os dados o id do cadastro de trator fica negativo alguem pode me ajudar
ola tudo bem pessoal preciso de ajuda desenvolvi um programa de cadastro de cliente com ficha de seguimento para o cadastro do trator dai tudo bem porem quando salvo os dados o id do cadastro de trator fica negativo alguem pode me ajudar
Como você está atribuindo o Id?