07 Set 2012 23:52
09 Set 2012 18:23
Use OldDbf Exclusive New
aStru := OldDbf->( DbStruct() )
// ADICIONANDO CAMPO
IF AScan( aStru,{|a| UPPER(a[DBS_NAME]) == "NOVOCAMPO" } ) = 0 // se não achar ele acresenta
AAdd( aStru, { "NOVOCAMPO", "C", 10, 0 } )
L_Grava=1
ENDIF
// ALTERANDO CAMPO EXISTENTE
nPOS:= AScan( aStru,{|a| UPPER(a[DBS_NAME]) == "NOMECAMPO" } )
IF nPOS > 0
aStru[nPOS,DBS_LEN] := 20 // AUMENTOU O TAMANHO
L_Grava=1
ENDIF
// EXCLUINDO CAMPO EXISTENTE
nPOS:= AScan( aStru,{|a| UPPER(a[DBS_NAME]) == "NOMECAMPO" } )
IF nPOS > 0
adel(astru,nPOS,.t.)
L_Grava=1
ENDIF
if L_Grava=1
SR_ChangeStruct( OldDbf, aStru )
endif