Página 1 de 1

SQLRDD SR_ChangeStruct

Enviado: 07 Set 2012 23:52
por fladimir
Leo ou algum colega q saiba...

Eu consigo alterar a estrutura das tabelas usando o SR_ChangeStruct, porém perco algum tempo, eu não estou conseguindo bolar uma forma de rodar o SR_ChangeStruct somente nas tabelas q tiveres estruturas diferentes das definidas no sistema, tipo analisar somente as q tiveram estruturadas mudadas entendem...

Se algum colega tiver alguma idéia agradeço.

[]´s

SQLRDD SR_ChangeStruct

Enviado: 09 Set 2012 18:23
por pauloa1
Olá!

Tenta Assim:

Código: Selecionar todos

 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