O Problema do Master/Detail

Delphi

30/03/2009

Olá!

Utilizo Delphi 7 + Zeos para conexão com MySQL no seguinte esquema *exemplo* no Banco de dados:

tbl_aluno:
aluno_id (not null), (auto_increment)(pk),
aluno_nome.


tbl_nota:
nota_id (not null), (auto_increment)(pk),
aluno_id (not null), (fk),
nota_nota


No Delphi, utilizo a propriedade MasterSource do componente para tbl_nota do tipo TZtable para ligá-lo à tbl_aluno, funciona perfeitamente para TUDO, exceto quando se dá o seguinte quadro: preciso inserir uma nota quando o aluno ainda não tem um ID (tbl_aluno está com um registro novo também, portanto ID ainda está nulo), o campo tbl_nota.aluno_id é preenchido com 0. Quando dou o POST na tabela aluno, ele primeiro dá POST nos datasets DETALHES (no caso, tbl_notas), gerando uma exceção do banco de dados, pq a nota está tentando ser salva antes do aluno, com o campo que identifica o aluno (aluno_id) nulo.


Gostaria de saber se há como mudar este comportamento do dataset master, ao invés de primeiro salvar os datasets detalhes, ele sejam salvo primeiro (pegando um id do auto_increment no banco de dados) e posteriormente salvar os datasets detalhes, ou mesmo que ele não tente salve os ds detalhes automaticamente, sendo feito manualmente.

Grato.


Dmt

Dmt

Curtidas 0
POSTAR