Fórum ligar uma tabela em outra - Interbase #259250

20/11/2004

0

Pessoal, eu estou precisando fazer com que alguns dados de uma tabela, entre em outra através do código, por exemplo, digito o código de um produto, e ele adiciona aquele produto em uma outra tabela assim que apertar um botão. Estou utilizando Interbase para fazer a tabela.

Desde já agradeço
Obrigado


Edusjc

Edusjc

Responder

Posts

21/11/2004

Oscar Candido

Amigo, espero que seja isso:
para selecionar os dados do registro de onde vc quer copiar vc pode usar a seguinte Query:

Select * from Tabela1 where Codigo = :Cod

para passar os dados de uma tabela pra outra, vc pode fazer da seguinte forma, depois de executar a Query anterior:
 Tabela2Codigo.Value := Tabela1Codigo.value;
Tabela2Nome.Value := Tabela1Nome.Value;//E assim por diante

Espero ter ajudado
Um Abraço


Responder

Gostei + 0

21/11/2004

Gandalf.nho

Pode usar uma trigger tb.


Responder

Gostei + 0

21/11/2004

Edusjc

como assim trigger?? não conheço este procedimento.


Responder

Gostei + 0

21/11/2004

Gandalf.nho

Trigger é um procedimento interno do banco de dados associado a um evento. Por exemplo, quando se deseja auto-incrementar a chave primária de uma tabela IB/FB o procedimento mais comum é criar um generator e usar uma trigger no evento BEFORE INSERT da tabela para incrementar o valor do campo.


Responder

Gostei + 0

21/11/2004

Edusjc

E como que é a linha de comando dele?? pode me dar um exemplo?
Obrigado


Responder

Gostei + 0

21/11/2004

Gandalf.nho

Exemplo de trigger associado a generator

Crie o generator:
CREATE GENERATOR nome_generator;

Agora a trigger:

CREATE TRIGGER nome_trigger FOR nome_tabela
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.nome_campo_chave IS NULL) THEN
NEW.nome_campo_chave = GEN_ID(nome_generator, 1);
END

Para saber mais olhe a documentação do IB/FB, além de uma pesquisada no fórum.


Responder

Gostei + 0

21/11/2004

Michaell

E como que é a linha de comando dele?? pode me dar um exemplo? Obrigado


Colega,

Vou te dar uma dica:

Supondo que você tenha 2 tabelas, PEDIDO(CODIGO INTEGER...) e PEDIDO_ITEM(CODIGO INTEGER, ITEM_CODIGO INTEGER...)

Crie um GENERATOR, por exemplo, GEN_PEDIDO (CREATE GENERATOR GEN_PEDIDO).

No Interbase existe uma função chamada GEN_ID(), que incrementa o valor do GENERATOR. Ela necessita de dois parâmetros: Nome do Generator, valor do incremento. Agora é só você utilizar:

´SELECT GEN_ID(GEN_PEDIDO, 1) FROM RDB$DATABASE´

E você obterá uma nova sequência para sua tabela de Pedidos, sendo que você poderá guardar esse código, numa variável no Delphi para posterior gravação na tabela PEDIDO_ITEM.

[]´s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar