Clipper On Line • Ver Tópico - Como saber se existe um campo no DBF ?

Como saber se existe um campo no DBF ?

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Como saber se existe um campo no DBF ?

Mensagempor lugab » 23 Jun 2018 10:10

Bom dia,

Preciso copiar dados de um arquivo para o outro e as vezes existe um campo no arquivo origem, mas não existe o mesmo campo no arquivo destino
e isso causa cancelamento do programa.
Preciso prever e evitar esse fato na rotina abaixo, alguém me ajuda ?
sele Origem
nCampos:=DbStruct()
sele Destino
dbappend()
neterro()
For i:=1 to Len(nCampos)
       cCampo:=nCampos[i,1]
       Repl Destino->&(cCampo) with Origem->&(cCampo)
Next i

Obrigado e boa copa !!
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Como saber se existe um campo no DBF ?

Mensagempor JoséQuintas » 23 Jun 2018 11:29

FieldNum()

#include "dbstruct.ch"

aStru := dbStruct()
FOR nCont = 1 TO Len( aStru )
   cFieldName := aStru[ nCont, F_NAME ]
   nFieldNum := alias2->( FieldNum( cFieldName ) )
   IF nFieldNum != 0
      xValue := FieldGet( nCont )
      alias2->( FieldPut(  nFieldNum, xValue ) )
    ENDIF
NEXT


Nota: sem macro vai ser mais rápido.
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: 18127
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Como saber se existe um campo no DBF ?

Mensagempor lugab » 23 Jun 2018 11:55

Obrigado mais uma vez, mestre Quintas

Um òtimo fim de semana !!!!
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Como saber se existe um campo no DBF ?

Mensagempor rochinha » 25 Jun 2018 10:27

Amiguinhos,

Use a função IsField():
Function IsField( cField ) 
  Return( fieldpos( cField ) != 0 )


   ...
   replace campo1 ...
   replace campo2 ...
   replace campo3 ...
   if IsField( "campo4" )
      replace campo4 ...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4545
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 806 vezes
Mens.Curtidas: 245 vezes

Como saber se existe um campo no DBF ?

Mensagempor lugab » 25 Jun 2018 14:01

Valeu, Rochinha...

Obrigado
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 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