Auto incremento no Delphi com MySQL

MySQL

Delphi

Banco de Dados

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
Edivania

Edivania

Curtidas 0

Melhor post

Luiz Santos

Luiz Santos

14/03/2017

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
GOSTEI 3

Mais Respostas

Raylan Zibel

Raylan Zibel

13/03/2017

Qual componente, ou conjunto de componentes, está usando?
GOSTEI 0
Jones Granatyr

Jones Granatyr

13/03/2017

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)
GOSTEI 0
Marcus Soares

Marcus Soares

13/03/2017

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 ?
GOSTEI 1
Edivania

Edivania

13/03/2017

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?
GOSTEI 0
Luiz Santos

Luiz Santos

13/03/2017

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
GOSTEI 1
Edivania

Edivania

13/03/2017

Obrigado pela dia dica
GOSTEI 0
Socrates Foschera

Socrates Foschera

13/03/2017

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
GOSTEI 0
Edivania

Edivania

13/03/2017

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?
GOSTEI 0
POSTAR