Saudações a todos os clipeiros!
Estou tentando alterar o tamanho de um campo no meu arquivo DBF.
Quando entro pelo DBU.EXE faço as alterações, mas ele zera o banco de dados. Eu tenho um campo string de tamanho 15 e quero passar para 20, ou seja, aumentar o espaço.
Já tentei, também, criar um outro DBF e importar os dados para ele, usando copy to e sort, mas o dbf de destino se alterou também.
Qual solução outra poderia eu usar?
Obrigado!
Isso é extremamente fácil. Não entendo onde estaria a dificuldade. Vou te passar meu procedimento:
Digamos que o DBF seja CLIENTES e tenham os seguintes campos:
COPY FILE("CLIENTES.DBF") TO ("CLIENTES.OLD")
CAMPOS:={{"MATRICULA" ,"N",004,000},;
{"NOME" ,"C",036,000},;
{"DTANAS" ,"D",008,000},;
{"ENDRES" ,"C",036,000},;
{"BAIRRO" ,"C",020,000},; // Digamos que este era o campo diferente ao que estava
{"FONE" ,"C",009,000},;
{"CIC" ,"C",014,000},;
{"LIMITE" ,"N",006,002} }
DBCREATE("CLIENTES.DBF",CAMPOS)
USE CLIENTES.DBF
APPEND FROM CLIENTES.OLD
Também daria para gerar o conteúdo do DBF1 para arquivo TEXTO com delimiters (com virgulas) e depois importar desde o DBF2 com a nova estrutura. Mas claro que os nomes dos campos e tipo tem que ser os mesmo. Senão terias que fazer uma rotina para transformar os campos modificados. se ainda encontrar dificuldade, me mande por email a estrutura do teu DBF (ou o DBF mesmo).
Glauco Cruz Costa escreveu:
Já tentei, também, criar um outro DBF e importar os dados para ele, usando copy to e sort, mas o dbf de destino se alterou também.
Acho que está bem ali teu erro. Se você deseja fazer 2º DBF e importar os dados do 1º DBF. Você não deve usar o copy, ao menos que utilize para criar um arquivo TEXTO e depois importar com o APPEND FROM. Mas acho que você deveria primeiro criar o DBF2 e usar o APPEND FROM DBF1 que seria mais adequado. E por quê o SORT ?. Se o teu objetivo e criar o 2º DBF em ordem alfabetica (digamos) fisicamente . Acho desnecessário.
Positivo, poderia sim, bastaria adicionar mais um elemento à matriz CAMPOS.
Um clip-abraço !
Pablo César Arrascaeta Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Bom, se vc não quiser inserir alguma rotina no programa para fazer a alteração, vc pode contar tbem com o FOXBase, que altera a estrutura do DBF sem perder os dados.
Eu uso direto !!!
Abraços.
Adm. Maickon Sato Consultoria e Projetos
-------------------------------------------------------
.. hei acel, procurei o Foxbase como agulha no palheiro, através do eMule. Só apareceu lixo. Lembra daquele site onde encontramos velhos programas, os abandonados...?
Netavain
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Bom dia amigos ! Oxalá 2008 seja de muitas realizações para todos nós.
Vou pegar esse gancho para não abrir outro tópico.
Colegas, no meu sistema de cadastro de produtos, existe o campo "data cadastro" e "data da baixa". Pois bem, ocorre que ao baixar o produto, este continua no DBF original. Estou cá a pensar comigo mesmo se não seria mais correto transferir esses produtos baixados para outro DBF. Seria essa a forma ideal ? Pois quando quero um relatório dos produtos ... d e m o r a .
Da forma que está o DBF só vai inchando. É isto ?
Um abraço a todos!!
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Existe uma versão do Fox, não sei qual, que se não me engano, altera o cabeçalho e delimitadores do dbf. ( header é uma espécie de DNA do DBF, onde está contido algumas inforamações do banco, data de criação, ultima alteração, campos, etc...)
Sei disso pois há muitos anos atrás, quando ainda nem programava, apenas fuçava, levei uma senhora duma bronca do programador, pois havia aberto um arquivo DBF do Clipper com o Fox. Até hoje sinto raiva dele ! E ele de mim ! ) ) )
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG