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

Responder a