Foxpro com dbf

Pergunta
Tenho dois sistemas com tabelas em formato dbf, a tabela1 do primeiro sistema tem 4 campos com nomes (suponhamos A, B, C, D) e necessito mediante foxpro copiar os registros dessa tabela2 ainda dbf de outro sistema à parte, porém que tem em sua estrutura de tabela os campos chamados (suponhamos A, B, C, D, E).

Tratei com APPEND, porém esta função me copiou os valores da tabela1 para a tabela2 na mesma ordem, o qual é normal…o valor de A em tabela 1 passou a ser valor de A em tabela 2, e assim sucessivamente até D, ficando E de tabela 2 vazio. Porém, preciso de outra função ou alguma variante para copiar o valor do campo C da tabela1 para o campo D da tabela 2, e o valor do campo D de tabla1 para o campo E de tabela2, ficando então vazio o valor de C da tabela 2. Ficaria na tabela2 o seguinte: em A o valor de A de tabela1, em B o valor de B de tabela1, em C vazio, em D o valor de C de tabela1 e em E o valor de D de tabela1.

Por favor, necessito de alguma sugestão de como conseguir isso. Desde já agradeço!

Valorize esta FAQ:
A FAQ Foxpro com dbf tem Pertence à categoria:
Resposta
Olá, se chamamos A1,B1,C1,D1 aos campos da tabela 1 e A2,B2,C2,D2,E2 os campos da tabela 2 e o que te falta é deixar C2 vazio e ocupar E2, por que você não renomeia E2 como C2?

Não diretamente, porém pode fazer nesta ordem:

1o renomeia C2 --> Campo2
2o renomeia E2 -->> C2
3o renomeia Campo2 --> E2

Ao final, o campo C da tabela 2 está vazio e E está ocupado pelos dados de C da tabela1. Espero que lhe sirva!

Por Ivan Santiago

Voltar à árvore de categorias Voltar à árvore de categorias

Comentários da faq
Foi enviado 1 comentário à faq
1 comentário revisado:
Foxpro com dbf
Por: cdsald
09/6/09
Olá,
Você também pode trabalhar com as próprias funções do foxpro e criar uma rotininha para copiar os dados, p. ex. (Se é que ainda me lembro... rsrs)

_______

Sele 1
use BANCO1
Sele 2
Use BANCO2

Sele 1 //seleciona o banco1 - ORIGEM DOS DADOS
GO TOP //Posiciona o ponteiro para o primeiro registro do banco1

DO WHILE NOT EOF() //FAZ O LOOP ATÉ CHEGAR O ÚLTIMO REGISTRO DO BANCO1
A1=A
B1=B
C1=C
D1=D
SELE 2 \SELECIONA O BANCO2 - DESTINO DOS DADOS
APPEND BLANK \CRIA UM NOVO REGISTRO NO BANCO2
REPLACE A WITH A1 \COPIA OS DADOS DE A (DO BANCO1) P/ A (DO BANCO2)
REPLACE B WITH B1 \COPIA OS DADOS DE B (DO BANCO1) P/ B (DO BANCO2)
REPLACE D WITH C1 \COPIA OS DADOS DE C (DO BANCO1) P/ D (DO BANCO2)
REPLACE E WITH D1 \COPIA OS DADOS DE D (DO BANCO1) P/ E (DO BANCO2)
SELE 1 \VOLTA AO BANCO1
NEXT \avança para o próximo registro
LOOP \Volta ao início da função
ENDDO
CLOSE ALL
RETU
_________

Boa Sorte
 
FAQs relacionadas
  + Incluir fotos em meu banco de dados
  + Inserção controlando duplicados
  + Aonde salvo um banco de dados para acessá-lo com PHP
  + Existe alguma palavra-chave que facilite a busca de campos repetidos?
  + Tenho um problema para entrar um banco de dados
  + Sistema de gestão de banco de dados
  + Banco de dados PHP
  + Obter dados de um banco para construir meus javascripts
  + O que é um sistema de informação gerencial de banco de dados?
  + Mostrar nomes segundo id
  + [...]

Ver todas las FAQS de Banco de dados

Usuários :    login / registro

Home | Sobre nós | Copyright | Anuncie | Entrar em contato