Melhor forma de fazer uma copia dos registros
Pessoal....
Aqui eu tenho um cadastro de Pai que por sua vez tem varias filhos....
Como eu gosto de deixar o sistema mais agil possivel para o usuario. O que eu gostaria era de fazer um botão que ao aperta-lo ele geraria uma copia daquele registro (faria uma incremento na PK) e o resto eu copiaria.
Ja fiz isso de varias maneiras em outro projetos
Ja salvei um xml e carregava em CDS auxiliares, ja fiz um select em CDS auxiliares, e tinha mais um jeito que eu fiz mas não lembro agora.
Mas eu achei todos esses jeito meio trabalho d+
Gostaria de saber se alguem aqui tem uma idéia para melhorar isso.
Obrigado.
* Trabalho com D7 e D2007, DBExpress, MySql e Firebird
Aqui eu tenho um cadastro de Pai que por sua vez tem varias filhos....
Como eu gosto de deixar o sistema mais agil possivel para o usuario. O que eu gostaria era de fazer um botão que ao aperta-lo ele geraria uma copia daquele registro (faria uma incremento na PK) e o resto eu copiaria.
Ja fiz isso de varias maneiras em outro projetos
Ja salvei um xml e carregava em CDS auxiliares, ja fiz um select em CDS auxiliares, e tinha mais um jeito que eu fiz mas não lembro agora.
Mas eu achei todos esses jeito meio trabalho d+
Gostaria de saber se alguem aqui tem uma idéia para melhorar isso.
Obrigado.
* Trabalho com D7 e D2007, DBExpress, MySql e Firebird
Osocram
Curtidas 0
Respostas
Rweberich
21/08/2009
Amigo,
A forma funcional seria carregar as informacoes que vc quer copiar atravez de uma [i:ffc4641fb9]TQuery [/i:ffc4641fb9] e carega-las nos respectivos campos (TEdit). Apos issu, no botao ´[b:ffc4641fb9]GRAVAR[/b:ffc4641fb9]´ vc gere um novo codigo pro respectivo cadastro novo. Pode ser mais demorado, mas gera menos problema quando vc for dar um [i:ffc4641fb9]post [/i:ffc4641fb9]na tabela.
Pra gerar esse codigo, o link abaixo pode ajuda-lo:
[i:ffc4641fb9]https://www.devmedia.com.br/articles/viewcomp.asp?comp=13928[/i:ffc4641fb9]
Abraco.
A forma funcional seria carregar as informacoes que vc quer copiar atravez de uma [i:ffc4641fb9]TQuery [/i:ffc4641fb9] e carega-las nos respectivos campos (TEdit). Apos issu, no botao ´[b:ffc4641fb9]GRAVAR[/b:ffc4641fb9]´ vc gere um novo codigo pro respectivo cadastro novo. Pode ser mais demorado, mas gera menos problema quando vc for dar um [i:ffc4641fb9]post [/i:ffc4641fb9]na tabela.
Pra gerar esse codigo, o link abaixo pode ajuda-lo:
[i:ffc4641fb9]https://www.devmedia.com.br/articles/viewcomp.asp?comp=13928[/i:ffc4641fb9]
Abraco.
GOSTEI 0
Osocram
21/08/2009
Se tiver que ficar jogando isso num TEdit vai ser pior ainda.
Eu uso Geração de chave primaria manual.
Eu uso Geração de chave primaria manual.
Amigo,
A forma funcional seria carregar as informacoes que vc quer copiar atravez de uma [i:625e42b8f6]TQuery [/i:625e42b8f6] e carega-las nos respectivos campos (TEdit). Apos issu, no botao ´[b:625e42b8f6]GRAVAR[/b:625e42b8f6]´ vc gere um novo codigo pro respectivo cadastro novo. Pode ser mais demorado, mas gera menos problema quando vc for dar um [i:625e42b8f6]post [/i:625e42b8f6]na tabela.
Pra gerar esse codigo, o link abaixo pode ajuda-lo:
[i:625e42b8f6]https://www.devmedia.com.br/articles/viewcomp.asp?comp=13928[/i:625e42b8f6]
Abraco.
GOSTEI 0
Rweberich
21/08/2009
Se tiver que ficar jogando isso num TEdit vai ser pior ainda.
Sim, de fato!
Quiz dizer [b:0cc3cf6ed1]TDBEdit[/b:0cc3cf6ed1]!
GOSTEI 0
Emerson Nascimento
21/08/2009
você precisa visualizar o registro copiado antes de gravá-lo ?
GOSTEI 0
Osocram
21/08/2009
Sim... na verdade este recurso estara na propria tela de cadastro do registro...
Vou exemplificar o meu caso p facilitar
Imagine um cadastro de Contrato de Imovel
tabela pai:
- Contrato
Tabelas Filhas:
- Imovel
- Proprietario
- Inquilino
- Garantia
- Eventos
Dae venceu o contrato do inquilino e ja tem outro p alugar o mesmo imovel com as mesmas despesas eu tudo mais...
Então para facilitar a vida do usuario quero fazer um botnão nesta pripria tela no qual vou Fazer uma copia do registro atual.
E o usuário so vai e muda oq precisa e pronto.
Vou exemplificar o meu caso p facilitar
Imagine um cadastro de Contrato de Imovel
tabela pai:
- Contrato
Tabelas Filhas:
- Imovel
- Proprietario
- Inquilino
- Garantia
- Eventos
Dae venceu o contrato do inquilino e ja tem outro p alugar o mesmo imovel com as mesmas despesas eu tudo mais...
Então para facilitar a vida do usuario quero fazer um botnão nesta pripria tela no qual vou Fazer uma copia do registro atual.
E o usuário so vai e muda oq precisa e pronto.
você precisa visualizar o registro copiado antes de gravá-lo ?
GOSTEI 0
Emerson Nascimento
21/08/2009
essas tabelas filhas são ligadas à tabela pai de que forma?
estou pensando num procedimento para fazer a cópia de todas as tabelas simultaneamente, passando apenas o cds pai, o campo ID da tabela pai e o próximo valor dele. assim servirá para mim também, pois seria uma rotina genérica, funcionando para qualquer tabela.
estou pensando num procedimento para fazer a cópia de todas as tabelas simultaneamente, passando apenas o cds pai, o campo ID da tabela pai e o próximo valor dele. assim servirá para mim também, pois seria uma rotina genérica, funcionando para qualquer tabela.
GOSTEI 0
Osocram
21/08/2009
tabela pai:
- Contrato
Id_contrato (PK)
Tabelas Filhas:
- Imovel (este na verdade é uma chave estrangeira q esta na tabela Contrato, não é uma tela filha)
- Proprietario
Id_contrato (PK)
ID_proprietario (PK) (sequencial)
- Inquilino
Id_contrato (PK)
id_inquilino (PK) (sequencial)
- Garantia
Id_contrato (PK)
id_garantia (PK) (sequencial)
- Eventos
Id_contrato (PK)
id_eventos (PK) (sequencial)
E na tela esta ligado como filhas mesmo usando um SqlQuery passando por parametro o id do pai.
- Contrato
Id_contrato (PK)
Tabelas Filhas:
- Imovel (este na verdade é uma chave estrangeira q esta na tabela Contrato, não é uma tela filha)
- Proprietario
Id_contrato (PK)
ID_proprietario (PK) (sequencial)
- Inquilino
Id_contrato (PK)
id_inquilino (PK) (sequencial)
- Garantia
Id_contrato (PK)
id_garantia (PK) (sequencial)
- Eventos
Id_contrato (PK)
id_eventos (PK) (sequencial)
E na tela esta ligado como filhas mesmo usando um SqlQuery passando por parametro o id do pai.
essas tabelas filhas são ligadas à tabela pai de que forma?
estou pensando num procedimento para fazer a cópia de todas as tabelas simultaneamente, passando apenas o cds pai, o campo ID da tabela pai e o próximo valor dele. assim servirá para mim também, pois seria uma rotina genérica, funcionando para qualquer tabela.
GOSTEI 0
Emerson Nascimento
21/08/2009
nested, certo?
ou você preenche os parâmetros manualmente ?
ou você preenche os parâmetros manualmente ?
GOSTEI 0
Emerson Nascimento
21/08/2009
nested, certo?
ou você preenche os parâmetros manualmente ?
ou você preenche os parâmetros manualmente ?
GOSTEI 0
Osocram
21/08/2009
Nested.
no exemplo:
o Id_contrato vem do pai, e o Id_evento é gerado na hora (incremental)[/code]
no exemplo:
- Eventos
Id_contrato (PK)
id_eventos (PK) (sequencial)
o Id_contrato vem do pai, e o Id_evento é gerado na hora (incremental)[/code]
GOSTEI 0