Clipper On Line • Ver Tópico - Duplicar registro

Duplicar registro

Discussão sobre SQL

Moderador: Moderadores

 

Duplicar registro

Mensagempor JoséQuintas » 19 Fev 2020 11:36

Como o cliente cadastra muitas filiais de determinadas empresas, tenho a opção de duplicar cadastro.
Não encontrei nada sobre isso, exceto colocar a lista de campos no comando.
Tem outro jeito ?

INSERT INTO JPCADASTRO
( ( SELECT * FROM JPCADASTRO WHERE IDCADASTRO = 10 ) - campos IDCADASTRO, CNPJ, ENDERECO, INSCRICAO )

Por enquanto a saída foi fazer manual:

STATIC FUNCTION DuplicaCliente( mIdCadastro )

   LOCAL aList := {}, nCont, cCampo, xValue
   LOCAL cnMySql := ADOClass():New( AppConexao() )

   IF mIdCadastro = 0
      RETURN NIL
   ENDIF
   IF ! MsgYesNo( "Confirma criar novo cadastro baseado no atual?" )
      RETURN NIL
   ENDIF
   WITH OBJECT cnMySql
      :cSql := "SELECT * FROM JPCADASTRO WHERE IDCADASTRO = " + NumberSql( mIdCadastro )
      :Execute()
      FOR nCont = 1 TO :Rs:Fields:Count()
         cField := Upper( :Rs:Fields( nCont - 1 ):Name )
         xValue := :rs:Fields( nCont - 1 ):Value
         DO CASE
         CASE cField == "IDCADASTRO"
         CASE cField == "CDCNPJ" ; xValue := Left( xValue, 11 ) + "0000-00"
         CASE cField == "CDINSEST" ; xValue := ""
         CASE cField == "CDENDERECO" ; xValue := ""
         ENDCASE
         IF cField != "IDCADASTRO"
            :QueryAdd( cField, xValue )
         ENDIF
      NEXT   
      mIdCadastro := :QueryExecuteInsert( "JPCADASTRO" )
      ::axKeyValue[ 1 ] := mIdCadastro
      :CloseRecorset()
   ENDWITH
   KEYBOARD "A" + Chr( K_ENTER )

   RETURN NIL


Além do problema de digitar muitos campos, a lista pode ficar desatualizada com o passar do tempo, então não gostaria de ter que colocar a lista de campos no fonte.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Duplicar registro

Mensagempor susviela@bol.com.br » 19 Fev 2020 15:14

Se ... e somente se, essa opção de duplicar o cadastro está acontecendo no momento da inclusão:

1) Aviso de gravação realizada com sucesso e perguntando se deseja gravar um outro registro com dados "similares" a esse registro;

2) Se e somente se resposta = SIM (não limpar o formulário e habilitar o botão de gravação )

Isso evitaria mais um acesso ao banco, o que nem chega a ser um problema;

Obs.: o item de pergunta / permissão de duplicar registros poderia ser setado nas configurações do sistema;
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro