Fórum ADO Mestre/Detalhe com DataSetField #401076
16/05/2011
0
Olá pessoal fiz um mestre/detalhe com ado utilizando datasetfield e banco access, o relacionamento propaga-se como esperado, mas nao na hora de inserir registros, tentei criar um relacionamento pelo access e nao deu certo tb.
Como o funcionamento do ADO é diferente do Firebird estou meio perdido, acontece que o problema está na geração da chave para o detalhe, como somente na hora de dar o commit que é gerado a chave, ela nao é passada para o detalhe e estou sem saber o que fazer, já que access é um banco bem simples e sem tantos recursos...
Como isto é um teste, estou fazendo o seguinte:
Ela tem a mesma estrutura de uma tabela do firebird e que funciona perfeitamente, sendo que tinha feito estas tabelas há muito tempo atrás e como agora estou tentando verificar como funciona o mestre/detalhe com datasetfield no ado com access, estou tendo dificuldades.
TABELA CDS (
ID_CDS Numeração Automática,
NOME Texto,
PRECO Unidade Monetária
);
TABELA MUSICAS (
ID_MUS Numeração Automática,
ID_CDS Número,
ORDEM Número,
TITULO Texto,
AUTOR Texto
);
Como vêem a estrutura é bem simples, somente para entender o contexto.
Pergunta como a chave é gerada somente no final, quando se aplica o commit. Como posso conseguir passar a chave do mestre para o detalhe neste tipo de relacionamento?
Sei que no caso de músicas nem seria necessário uma chave primária, mas isto é somente um teste para ver como funciona com ado...
Espero que tenham entendido minha questao, é bem simples, mas estou apanhando, se fosse com o outro método de mestre/detalhe nao seria problema, mas com datasetfield e mais complicado.
Lembrando que a tabela grava, mas grava com zero, gravava até eu mexer no relacionamento pelo access e a integridade referencial...
Neste caso nem grava mais, pois precisa da chave que exista na tabela e este é o meu ponto, pois se tiro o autoincremento, qual alternativa para incrementar se nao há outro recurso neste banco.
quando é feito o mestre/detahe utilizando isto eu tenho de gerar manualmente o auto-incremento?
bye
Como o funcionamento do ADO é diferente do Firebird estou meio perdido, acontece que o problema está na geração da chave para o detalhe, como somente na hora de dar o commit que é gerado a chave, ela nao é passada para o detalhe e estou sem saber o que fazer, já que access é um banco bem simples e sem tantos recursos...
Como isto é um teste, estou fazendo o seguinte:
Ela tem a mesma estrutura de uma tabela do firebird e que funciona perfeitamente, sendo que tinha feito estas tabelas há muito tempo atrás e como agora estou tentando verificar como funciona o mestre/detalhe com datasetfield no ado com access, estou tendo dificuldades.
TABELA CDS (
ID_CDS Numeração Automática,
NOME Texto,
PRECO Unidade Monetária
);
TABELA MUSICAS (
ID_MUS Numeração Automática,
ID_CDS Número,
ORDEM Número,
TITULO Texto,
AUTOR Texto
);
Como vêem a estrutura é bem simples, somente para entender o contexto.
Pergunta como a chave é gerada somente no final, quando se aplica o commit. Como posso conseguir passar a chave do mestre para o detalhe neste tipo de relacionamento?
Sei que no caso de músicas nem seria necessário uma chave primária, mas isto é somente um teste para ver como funciona com ado...
Espero que tenham entendido minha questao, é bem simples, mas estou apanhando, se fosse com o outro método de mestre/detalhe nao seria problema, mas com datasetfield e mais complicado.
Lembrando que a tabela grava, mas grava com zero, gravava até eu mexer no relacionamento pelo access e a integridade referencial...
Neste caso nem grava mais, pois precisa da chave que exista na tabela e este é o meu ponto, pois se tiro o autoincremento, qual alternativa para incrementar se nao há outro recurso neste banco.
quando é feito o mestre/detahe utilizando isto eu tenho de gerar manualmente o auto-incremento?
bye
Johnny-walker
Curtir tópico
+ 0
Responder
Posts
17/05/2011
Johnny-walker
UP!!!
Responder
Gostei + 0
28/05/2011
Johnny-walker
UP!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)