Como acrescentar um campo na estrutura de um DBF já existent
Moderador: Moderadores
Como acrescentar um campo na estrutura de um DBF já existent
Olá,
Gostaria de saber como acrescentar um CAMPO na estrutura de um DBF
atraves do Programa (sem ser pelo DBU), sendo este arquivo contem
registros.
Grato
InduSoft
Gostaria de saber como acrescentar um CAMPO na estrutura de um DBF
atraves do Programa (sem ser pelo DBU), sendo este arquivo contem
registros.
Grato
InduSoft
Atualizar BD
Eu faço desta forma, é um forma que o cliente poderá fazer também no caso de vc mandar a atualização pela net.
* Inclua os campos que quiser e depois mande executar esta função, num determinado local do sistema.
Abraços.
Código: Selecionar todos
/////////////////////////////////////////////////////////////////////////////
/////////////// Funcao: Gera e Atualida DBF da Empresa ///////
/////////////////////////////////////////////////////////////////////////////
**--------------**
PROCEDURE CR_CFG()
**--------------**
run mkdir \windows\etc
Public Muda
Clear
Set Color To W/B
While .T.
Muda=.f.
If !File("\windows\exccfg.DBF")
Create \windows\ARQ.TMP
Criacampo("CODIGO_CFG","N",5,0) // 1
Criacampo("RAZAOS_CFG","C",45,0) // 2
Criacampo("EMPRES_CFG","C",45,0) // 3
Criacampo("ENDERE_CFG","C",35,0) // 4
Criacampo("NUMERO_CFG","N",5,0) // 5
Commit
Create \windows\exccfg From \windows\Arq.TMP
Erase \windows\Arq.TMP
If File("\windows\exccfg.TMP")
Use \windows\exccfg
Append From \windows\exccfg.tmp
Close Data
Erase \windows\exccfg.tmp
Endif
Else
Use \windows\exccfg
If Neterr()
Alert(" Arquivo esta Ativo em outro Terminal! ")
Set Color to
Clear
Return .F.
Else
@ 21,06 Say Space(50)
@ 21,06 Say DBF()
@ 21,15 Say "- ##### Verificando Campos ##### "
Existestru(01,"CODIGO_CFG")
Existestru(02,"RAZAOS_CFG")
Existestru(03,"EMPRES_CFG")
Existestru(04,"ENDERE_CFG")
Existestru(05,"NUMERO_CFG")
If Muda
Use \windows\exccfg
Close Data
FErase("\windows\emp*.NTX")
!Ren \windows\exccfg.DBF exccfg.TMP
Loop
Endif
Endif
Endif
Inkey(1)
Exit
Enddo
Close All
ReturnAbraços.
"Ter Problemas é Inevitável, ser derrotado por eles é opcional.!!"
Existema várias formas, mas quando você tem que mandar uma atualização para um cliente via internet o melhor meio é como o Dudu faz, eu faço algo parecido...Vejam :
Eu mando para o cliente um instalador com os arquivos .ATU (são os arquivos com a estrutura atualizada), o sistema na inicialização verifica a existência destes arquivos, se existir ele copia os dados do arquivo antigo para o novo, exclui o arquivo antigo e renomeia o novo de .ATU para .DBF
A variável ATU=.T. é para que eu informe ao sistema que foi feita uma atualização e que ele deve reindexar os arquivos.
Até logo.
Marcelo
Código: Selecionar todos
IF FILE("\BR\DAT\ARQFECHA.ATU")
USE \BR\DAT\ARQFECHA.ATU
APPEND FROM \BR\DAT\ARQFECHA.DBF
USE
FERASE("\BR\DAT\ARQFECHA.DBF")
FERASE("\BR\DAT\ARQFECHA.CDX")
FRENAME("\BR\DAT\ARQFECHA.ATU","\BR\DAT\ARQFECHA.DBF")
ATU=.T.
ENDIF
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ATUALIZACAO ARQFECHA
IF FILE("\BR\DAT\BRMASTER.ATU")
USE \BR\DAT\BRMASTER.ATU
APPEND FROM \BR\DAT\BRMASTER.DBF
USE
FERASE("\BR\DAT\BRMASTER.DBF")
FERASE("\BR\DAT\BRMASTER.CDX")
FRENAME("\BR\DAT\BRMASTER.ATU","\BR\DAT\BRMASTER.DBF")
ATU=.T.
ENDIF
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ATUALIZACAO CADITE
IF FILE("\BR\DAT\CADITE.ATU")
USE \BR\DAT\CADITE.ATU
APPEND FROM \BR\DAT\CADITE.DBF
USE
FERASE("\BR\DAT\CADITE.DBF")
FRENAME("\BR\DAT\CADITE.ATU","\BR\DAT\CADITE.DBF")
ATU=.T.
ENDIF
A variável ATU=.T. é para que eu informe ao sistema que foi feita uma atualização e que ele deve reindexar os arquivos.
Até logo.
Marcelo
Eu tenho clientes em varios estados do Brasil, e passava por essa dificuldade, pois cada vez que inclui campos nos DBF, tinha aquele trabalho todo, no inicio eu manda os discos, e era executado um programa de instalação/atualização, no disco tinha todas as bases vazias, ai o sistema ia lendo as vazias(novas), e comparando com as do cliente, se faltasse um campo, ai era feito a atualizaçao. Eu copiava a base vazia do disquete para o disco rigido, fazia um APPEND FROM, apagava a velha e renomeava a nova.
Funcionava uma beleza, so que depois eu fiz de outra maneira.
Criei um programa para ler todas as minhas base de dados, visto que eu utilizava varios diretorios diferentes com os DBFs, apartir dai gero um .PRG, com todas as estrutura relacionadas. Compilo e gero um executavel, que é mandado para o cliente, ele checa todas as bases e atualiza.
Já tinha postado isso uma vez no forum antigo, mandei para varios colegas, até modifiquei a pedidos. Eu ainda tenho esse exemplo, se alguem quiser é só dar um alo.
Abraços,
Dercide.
dercide@terra.com.br
Funcionava uma beleza, so que depois eu fiz de outra maneira.
Criei um programa para ler todas as minhas base de dados, visto que eu utilizava varios diretorios diferentes com os DBFs, apartir dai gero um .PRG, com todas as estrutura relacionadas. Compilo e gero um executavel, que é mandado para o cliente, ele checa todas as bases e atualiza.
Já tinha postado isso uma vez no forum antigo, mandei para varios colegas, até modifiquei a pedidos. Eu ainda tenho esse exemplo, se alguem quiser é só dar um alo.
Abraços,
Dercide.
dercide@terra.com.br
Eu tenho clientes em varios estados do Brasil, e passava por essa dificuldade, pois cada vez que inclui campos nos DBF, tinha aquele trabalho todo, no inicio eu manda os discos, e era executado um programa de instalação/atualização, no disco tinha todas as bases vazias, ai o sistema ia lendo as vazias(novas), e comparando com as do cliente, se faltasse um campo, ai era feito a atualizaçao. Eu copiava a base vazia do disquete para o disco rigido, fazia um APPEND FROM, apagava a velha e renomeava a nova.
Funcionava uma beleza, so que depois eu fiz de outra maneira.
Criei um programa para ler todas as minhas base de dados, visto que eu utilizava varios diretorios diferentes com os DBFs, apartir dai gero um .PRG, com todas as estrutura relacionadas. Compilo e gero um executavel, que é mandado para o cliente, ele checa todas as bases e atualiza.
Já tinha postado isso uma vez no forum antigo, mandei para varios colegas, até modifiquei a pedidos. Eu ainda tenho esse exemplo, se alguem quiser é só dar um alo.
Abraços,
Dercide.
dercide@terra.com.br
Funcionava uma beleza, so que depois eu fiz de outra maneira.
Criei um programa para ler todas as minhas base de dados, visto que eu utilizava varios diretorios diferentes com os DBFs, apartir dai gero um .PRG, com todas as estrutura relacionadas. Compilo e gero um executavel, que é mandado para o cliente, ele checa todas as bases e atualiza.
Já tinha postado isso uma vez no forum antigo, mandei para varios colegas, até modifiquei a pedidos. Eu ainda tenho esse exemplo, se alguem quiser é só dar um alo.
Abraços,
Dercide.
dercide@terra.com.br
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Dercide envie ele ao Toledo para colocar no link downloads do site para ficar disponível a todos. (Y)
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
Cleiton Fidelis
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 06 Jul 2004 09:44
- Localização: Divinopolis MG


