SQLRDD SR_ChangeStruct

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

SQLRDD SR_ChangeStruct

Mensagem 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
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

SQLRDD SR_ChangeStruct

Mensagem 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
Editado pela última vez por Pablo César em 09 Set 2012 18:56, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder