Página 1 de 1
Alteração na Estrutura do DBF com registros.
Enviado: 26 Ago 2004 16:37
por Marcos
Saudações a todos, estou com um problema, nunca passei por esta situação, já vi vários tópicos abordando este assunto, mas só agora estou precisando, acredito que não consigo mais acessar estes referidos tópicos, bom vamos ao problema:
Tenho um DBF de Clientes, nele existem vários clientes já cadastrados, só que eu atualizei a Estrutura do DBF, mudando muita coisa (Tamanho dos campos, de Character para Numeric, inclusão de alguns campos que não existiam e etc) só que agora eu não sei como eu faço para realizar tal alteração na Estrutura do DBF sem perder os registros já cadastrados (Clientes), na primeira tentativa que fiz, já foi em vão, pois fiz todas as alterações na estrutura do DBF Clientes pedi para gravar deu um erro e saiu fora, aconteceu que perdi todos os registros que estavam cadastrados, a única coisa que deu certo foram as alterações na Estrutura do DBF (Clientes), ficaria muito grato com a ajuda de vocês.
Abraços,
Marcos
Da Roça.
Enviado: 26 Ago 2004 19:21
por Dudu_XBase
...eh qdo vc muda um campo caractere para numerico no dbu da bucha...
...qdo preciso fazer fazer tal alteração... uso o foxbase...nunca tive problemas....
carrego o programa ... use arquivo .... modi stru ... ctrl+end ...salvo e tudo certo...
para pegar o foxbase...vá no site no Wagner...
http://www.vagucs.com.br/download/fox.zip
Enviado: 27 Ago 2004 08:04
por Marcos
Olá Dudu, obrigado pela atenção, eu também trabalho com foxbase, a propósito após não ter êxito com o DBU tentei com o Foxbase e deu certo, em contrapartida perdi as informações que haviam no campo que foi alterado de Character para Numeric, é possivel efetuar tais alterações sem perder os registros já existentes?
Abraços,
Marcos
Da Roça.
Enviado: 27 Ago 2004 08:38
por andersoncamilo
Marcos bom dia, quando eu tenho que fazer este tipo de alteração que você está querendo, eu faço de duas maneiras uma é criar uma rotina que copia os dados do arquivo velho para o arquivo novo, ou usando o fox base, eu crio alguns campos auxiliar no arquivo com o mesmo formato antigo e transfiro os dados antigos para estes campos, depois mudo o tipo de cacter para numérico e copio novamente para o campo já com o formato numérico usando va funcão VAL(), ou se for para campo tipo date usando a função CTOD(), e assim sucessivamente.
Um abraço e bom trabalho.
Anderson Camilo
Ji-Paraná - Rondônia

Enviado: 27 Ago 2004 08:42
por andersoncamilo
Obs: Quando falo copio dentro do fox uso o comando REPLACE.
Anderson Camilo
Ji-Paraná - Rondônia
Enviado: 27 Ago 2004 08:45
por Dudu_XBase
....desculpe fiz a alteração de numérico pra caractere foi blz...qdo reverti...perdi os dados...a solução do Anderson é a solução nessa sua situação...
Enviado: 27 Ago 2004 12:13
por Marcos
Anderson eu entendi sua sugestão, acontece que eu não sei os comandos para fazer isso dentro do Fox. Você poderia por favor me ajudar?
Abraços e obrigado pela atenção de todos.
Marcos
Alterar estrutura de *.dbf
Enviado: 27 Ago 2004 12:21
por gransoft
ARAGUARI-MG, 27 de agosto de 2004.
Prezados Srs.,
Sugestão:
Todo Aplicativo deve criar os "*.dbf" vazios, cuja estrutura é definida no próprio programa. Assim sendo, basta renomear o arquivo antigo, executar a rotina para criar arquivo/índices com os novos campos e importar os dados do anterior...
Código: Selecionar todos
RENAME ARQEST.DBF TO ARQEST.ANT
CriaArq()
USE ARQEST
APPEND FROM ARQEST.ANT
USE
Indexa()
CLOSE DATABASES
* ERASE ARQEST.ANT // SE TIVER CERTEZA QUE TUDO DEU CERTO ...
Se por ventura, queremos é alterar um campo para outro...
Código: Selecionar todos
RENAME ARQEST.DBF TO ARQEST.ANT
CriaArq()
USE ARQEST
APPEND FROM ARQEST.ANT
GOTO TOP
WHILE (.NOT. EOF())
* REPLACE CAMPONOVO WITH CAMPOANT
REPLACE CAMPONUM WITH VAL(CAMPOSTR)
SKIP
END
USE
Indexa()
CLOSE DATABASES
* ERASE ARQEST.ANT // SE TIVER CERTEZA QUE TUDO DEU CERTO ...
Obviamente, se for o programador que realizará este processo, usar o FoxBase para
USE ARQEST
copy to ARQEST.ANT
zap
modi stru
append from ARQEST.ANT
replace all camponum with VAL(campostr)
é muito mais simples. DBU? Crédo!
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
Alterar estrutura do DBF
Enviado: 28 Ago 2004 01:10
por Vander
Tenho uma rotina que talves possa ajudar, entre em contato que eu envio pra você.
Vander
ndsistemas@bol.com.br
ou
vlnunes@click21.com.br
Enviado: 01 Set 2004 02:45
por Spitzer
Olá!
Tenho usado o DBase III para tais tarefas.
A pasta que está o DBase está no Path do autoexec.bat.
Então quando preciso, mudo qualquer proriedade do campo, excluo e incluo campos... sem problemas!
Ele mesmo já se encarrega de um backup antes de qualquer operação.
Invoco o assistente do DBase com F2 e não preciso escrever uma linha de código sequer para realizar estas alterações.
Não é nenhuma novidade nem maravilha do outro mundo, mas tem me atendido bem.
A propósito, tenho uma versão do DBase III Plus em Português.
Aí fica bem mais fácil de usar o assistente.
Quem quiser uma cópia desta versão, peça-me em private pelo e-mail
ademirspitzer@yahoo.com.br que envio.
Enviado: 01 Set 2004 18:15
por CDV
.....
Enviado: 08 Set 2004 10:02
por janio
Olá a todos,
Também precisei fazer uma alteração em um campo mundando-o de NUMÉRICO para CARACTERE. Tentei pelo DBU, deu erro e perdi todos os registros.
Tentei pelo MYDBU e FUNCIONOU BLZ. É facílimo de usar. Ele cria uma novo DBF e copia todos os dados do antigo para o novo DBF. Depois é só renomear o arquivo. Se eu não me engano, peguei este programa no CD do Toledo.
Janio