Página 2 de 2
Enviado: 02 Jan 2008 23:35
por Maligno
Qualquer bom programa que se preste a manutenção de arquivos DBF permite modificar a estrutura de tabelas, o que faz com que seu header seja de fato alterado, já que é nele que se encontra a "geometria" dos registros.
Enviado: 26 Mar 2008 23:35
por Netavin
Boa noite meus amigos!
Antes que meus olhos se fecham por hoje, gostaria de mais uma aula sobre alteração de DBF.
Tenho um sistema rodando na empresa de um amigo. Ele pediu uma alteração no programa e isto implicou em acrescentar mais um campo no banco de dados. Fiz a alteração aqui em casa e ficou beleza. Mas esse amigo tem vários regitros cadastrados a esta altura da competição.
Como proceder para copiar os registros do DBF dele para este que alterei ?
Pretendo mandar as alterações via e-mail. Ele descompactará e sobregravará o ".exe" existente na pasta respectiva. O mesmo não poderá ser feito com o DBF.
zzzzzzzzz ...
Obrigado!!
Netavin
Enviado: 27 Mar 2008 02:01
por rochinha
Amiguinho
Crie um indice condicional e critique via WHILE ou FOR para incluir somente os registros que satisfaçam sua vontade e não se preocupe em copiar dados antigos para outro arquivo, pois tera de fazer isto sempre.
Em meu sistema, uso .CDX e tenho uma variavel que controla uma janela de tempo para visualizaçao de dados.
Esta variavel guarda uma determinada data que pode estar entre HOJE e os ultimos 15 dias, HOJE e os ultimos 30 dias, HOJE e os ultimos 3 meses ou HOJE e os ultimos 6 meses ou o periodo que eu quizer.
Nas filtragens, uso SetScope passando para o mesmo a data de hoje e a data desta variavel, desta forma só visualizo o montante de registros dentro desta janela.
Pelo fato do SetScope trabalhar baseado em um indice por data fica rapida a filtragem e não preciso usar indices condicionais, mas no seu caso não sei o que voce usa para filtrar, então passe a fazer uso deles nas filtragens e relatorios.
Enviado: 27 Mar 2008 11:27
por gvc
[Rochinha]
Acho que o mestre Rochinha estava sonambulo. (eh! eh! eh!)
Não consegui "ligar" a pergunta a resposta dada.
[Netavin]
Este exemplo muda a estrutura do dbf e acrescenta um campo no arquivo.
Código: Selecionar todos
use cadcli
a_stru := cadcli->(dbstruct())
posi := ascan(a_stru, {|x| x[1] = 'ENDERECO'})
a_stru[posi, 3] := 50
if ascan(a_stru, {|x| x[1] = 'EMAIL2'}) = 0
aadd(a_stru, {'EMAIL2', 'C', 40, 0})
end
cadcli->(dbclosearea())
if frename('cadcli.dbf', 'cadcli2.dbf') = 0
dbcreate('cadcli', a_stru)
use cadcli exclusive new
append from cadcli2
use
ferase('cadcli2.dbf')
end
Espero ter ajudado. Boa sorte.
Enviado: 27 Mar 2008 19:30
por Netavin
... ehehe
gvc, juro que de cedo até agora a tardinha eu estava lendo e relendo o post do nosso amigo rochinha. Pergunta se entendi!!
Mas como ele é sempre muito técnico, eu estava tentando "decifrar" a receita.
Agora com o seu exemplo, tudo ficou claro e transparente.
Valeu rochinha!!. Quando eu crescer quero ser igual a você!
Um abraço!
Obrigado gvc!
Forte abraço!
Netavin
Enviado: 27 Mar 2008 21:53
por Netavin
Ok !! ficou "do tipo" a rotina. Cumpriu certinho seu papel.
... supondo que no futuro eu precise acrescentar mais um campo, o procedimento será o mesmo, com as devidas substituições, certo ?
Obrigado!!
:{
Netavin
Enviado: 27 Mar 2008 22:01
por rochinha
Amiguinhos
É mesmo, passei batido e vai saber agora onde eu deveria ter postado!,
hahaha! num tem graça.
Enviado: 28 Mar 2008 00:03
por Toledo
Rochinha, favor verificar suas MPs... te enviei uma e acho que você ainda não leu.
Obs.: depois, pode excluir esta mensagem, ok?
Abraços,
Enviado: 28 Mar 2008 11:46
por gvc
[Netavin]
Sim. Vc pode mudar a estrutura que esta na matriz e adicionar vários campo de uma vez. Pode mudar a estrutura para excluir campos.
O que vc deverá tomar muito cuidado é quando for mudar tipos. Ex. O campo é numérico e vc vai transformar para caracter ou vice-versa. Vc não pode converter diretamente como esta no exemplo.
[Rochinha]
"Pegar no seu pé" é algo que alguns aqui do forum gostam. Não por falar que o cara tb erra, mas por mostrar que sempre lemos suas respostas e prestamos atenção. Se algo não encaixa, temos que avisar. Com bom humor de preferência. Sem desrespeito por ambos os lados.
[Toledo]
Agora que eu reparei que o cara mudou de cidade. Ainda vou marcar um F2F com o mestre desde forum.
Enviado: 28 Mar 2008 12:25
por mhackervix
Netavin escreveu:Boa noite meus amigos!
Antes que meus olhos se fecham por hoje, gostaria de mais uma aula sobre alteração de DBF.
Tenho um sistema rodando na empresa de um amigo. Ele pediu uma alteração no programa e isto implicou em acrescentar mais um campo no banco de dados. Fiz a alteração aqui em casa e ficou beleza. Mas esse amigo tem vários regitros cadastrados a esta altura da competição.
Como proceder para copiar os registros do DBF dele para este que alterei ?
Pretendo mandar as alterações via e-mail. Ele descompactará e sobregravará o ".exe" existente na pasta respectiva. O mesmo não poderá ser feito com o DBF.
zzzzzzzzz ...
Obrigado!!
Netavin
Sendo uma alteração de Estrutura eventual, acredito que o mais indicado seja usar o próprio DBU, ou seja, através dele copie o arquivo antigo, modifique a estrutura no novo e, caso os dados se percam, use a opção APPEND dele. Não se gasta nem meia hora.
att.