Fórum O Problema do Master/Detail #369473
30/03/2009
0
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.
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)