Clipper On Line • Ver Tópico - SQLRDD SR_ChangeStruct

SQLRDD SR_ChangeStruct

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

SQLRDD SR_ChangeStruct

Mensagempor fladimir » 07 Set 2012 23:52

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.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

SQLRDD SR_ChangeStruct

Mensagempor pauloa1 » 09 Set 2012 18:23

Olá!

Tenta Assim:

 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
Nota de Moderação:
Pablo César: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes




Retornar para Banco de Dados

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