Gravar dados de uma tabela em outra

Delphi

17/01/2004

Olá pessoal,

Seguinte: Eu tenho duas tabela paradox e uso o delphi 6
Na table2 eu tenho os campos data e valor
Na table1 eu tenho os campos data e valor

O que eu quero: Quando informar a data e o valor dos campos da table2 grava tambem a mesma coisa na table1

Detalhes: Cada tabela fica em form´s diferentes e eu queria usar um botão salvar para o procedimento

Tem como?

Obrigado

wagnernormando@ig.com.br


Wagner

Wagner

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

17/01/2004

Colega,

Utilize o componente TBatchMove ou o método BatchMove disponível no TQuery e TTable.


GOSTEI 0
Wagner

Wagner

17/01/2004

Obrigado pela dica, mais a questão e que não sei como fazer, pode me ajudar?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/01/2004

Colega,

Não creio ter todas as informações necessárias para lhe enviar um exemplo fechado, mas aqui vai:

SQL
SELECT * FROM tabela
WHERE coluna_data = :data

DELPHI
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.ParamByName(´DATA´).AsDate := Date;
  Query1.Open; // Acho que nem é necessário essa linha
  Table2.BatchMove(Query1, batCopy); // copia o conteúdo da query1
end;



GOSTEI 0
Wagner

Wagner

17/01/2004

Mais uma vez obrigado pela atenção, mais como devo fazer como o campo valor? tem um exemplo usando table?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/01/2004

Colega,

No exemplo que coloquei eu utilizei a data apenas para filtrar o ´movimento´, sendo que todos os campos da tabela (query1) serão movidos para a Table2 (quanto existirem na origem).


GOSTEI 0
Wagner

Wagner

17/01/2004

Acho que ficou faltando eu explicar um detalhe eu tenho outros campos na duas tabelas, mais so quero gravar data e valor. tem como?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/01/2004

Colega,

Não entendi, coloca a descrição de ambas as tabelas e quais campos devem ser gravados de uma na outra.


GOSTEI 0
Wagner

Wagner

17/01/2004

Desculpe-me analizando bem ainda falta mais detalhes, realmente lhe peço desculpas por essa destração vou tenta ser mais claro

tenho table1 com campo codigo, [color=blue:1eb933aa03]apto[/color:1eb933aa03], [color=red:1eb933aa03]data, valor[/color:1eb933aa03] e proprietario.

tenho table2 com campo codigo, [color=blue:1eb933aa03]apto[/color:1eb933aa03], ref, [color=red:1eb933aa03]data, valor[/color:1eb933aa03], proprietario.

A tabela que eu uso regularmente e a table2 alimentando a table1 para consultas.
Eu imaginei alguma coisa desse tipo nem sei se é possivel ou se da trabalho:

Se apto da table2 = apto da table1 então gravar data e valor


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/01/2004

Colega,

Possível é, mas desnecessário. Basta gravar a table2 (codigo, apto, ref, data, valor, proprietario) onde você tem a movimentação e fazer uma query para agrupar e obter o resultado que você armazenava na table1.

select codigo, apto, data, proprietario, sum(valor) as total
from nome_tabela
group by codigo, apto, data, proprietario
order by codigo, apto, data, proprietario


Substitua nome_tabela pelo nome da table1. usei sum(valor) para totalizar o valor para registros com mesmo codigo, apto, data, proprietario.


GOSTEI 0
Marco Salles

Marco Salles

17/01/2004

Só Uma Pergunta Wagner.Porque Voce Tem Duas Tabelas Quase Identicas :?: Pelo que Pude Observar, So Há Uma Diferença No Campo [color=red:662f8b0b44]Ref[/color:662f8b0b44] De Uma Que a Outra Não Tem :!: Voce Talvez Responda , Que Os Registros Inseridos Em Uma Tabela Estejam ´Espalhados´ e Já Na Outra Tabela Os Registros Estão Ordenados Pela Condição : [color=red:662f8b0b44]Se apto da table2 = apto da table1 então gravar data e valor[/color:662f8b0b44]. Isto São Apenas Suposiçõe....Não Entendi Direito o Que Tu Queres De Verdade.
P:S O Fato De as Duas Tabelas Estarem Em Formulários Diferentes Em Pouco Dificulta. Basta Acrescentar Corretamente a Uses Dos Dois Componentes Table. :idea: Acrescento Ainda Que Se Voce Conhece o [color=red:662f8b0b44]Data Modulo[/color:662f8b0b44] :?: :arrow: Onde Voce Pode Ter Todas as Tabelas Do Seu Programa Em Um Só ´Lugar´. VALE A PENA :P


GOSTEI 0
POSTAR