Boa noite a todos!
Estou desenvolvendo uma aplicação em Delphi7 usando DBExpress, MySql
5.
Tenho uma tela Mestre/Detalhe com Unidades/Telefones onde cada
Unidade pode ter vários telefones. Na tabela de telefone a Chave
Primária é um campo auto-incremento, e ai começou o meu problema.
Quando peço para salvar, o MySql manda a mensagem "Field XXXX must
have a value".
Lembrando que o referido campo é auto-incremento, logo o MySql em um
relacionamento Mestre/Detalhe não está incrementando os valores.
Resolvi o problema criando uma query de
consulta, onde capturo o valor maximo do campo id_fone_unid e
incrementando somando 1 a ele. Uma adaptação técnica.
Verifiquei todos os passos (2 sqlDataSet, 03 DataSource, 1
DataSetProvider, 02 ClientDataSet), os respectivos eventos (afterpost
e afterDelete). Tudo certinho.
Antes de postar aqui, consultei na grande rede, e não achei nada
parecido, por isso peço auxílio dos colegas quanto ao caso.
Só para reforçar, o referido problema de não incrementar um valor em
um campo auto-incremento só ocorre em um tabela detalhe.
Se for em uma tabela/query master ou sem relacionamento, o incremento
é realizado sem problemas.
No Firebird, o problema é resolvido com um Stored Procedure, e
pronto, mas no MySql, não sei como resolver, ou será que este
problema é normal?
Desde já agradeço a atenção dispensada.
Fraterno abraço!
Carlos