Fórum Criar Referencia Cruzada #320010

26/04/2006

0

Olá Pessoal, como crio referencia cruzada usando Delphi 7 e PostgreSql..

presciso... a cada vez q eu incluir um registro(linha) em uma tabela.. esse registro se transforme em coluna em uma outra tabela....

no caso.. o nome da coluna na outra tabela será o código do registro...


alguem tem alguma idéia????
estou no aguardo....


Thiago Coleti

Thiago Coleti

Responder

Posts

26/04/2006

Motta

Pelo que entendi , algo assim

mod-venda
------------
cod
desc

01 cartao
02 vista
03 cheque pre

total_vendas
---------------
mes
01
02
03

------------
se criarem
04 tampinhas de garrafa

vc criar uma coluna
04 em total vendas , isto ?

--------------------------
vc poder fazer por trigger na tabela mod-venda crando um comando ddl
para criar a coluna na outra tabela , e se houver alteracao/delecao ??

-----------------------------
informe o bd pois alguns nao suportam certas operacoes
-------------------------------------------------------------


Responder

Gostei + 0

27/04/2006

Thiago Coleti

Olá Motta.... me confundi um pouco no seu exemplo ... vou tentar explicar pelo meu...

tenho duas tabelas
Produtos
Cód   Descrição
 01     Canetas
 02      Lápis


Locais
Cód   Descrição
0101  Matriz
0202  Filial


o que pretendo eh q cada vez q eu inserir um novo registro na tabela locais esse novo registro vire uma coluna na tabela produto
nesse exemplo ficaria :
Produto
Cód   Descricao 0101   0202

e se eu inserir o registro 0303 por exemplo... iria incluir a coluna 0303 ... se tiver alguma idéia ..estou no aguardo...


Responder

Gostei + 0

27/04/2006

Motta

ok, uma trigger de after insert em locais , faria um comando de ddl de criacao da coluna, mas a mecanica de como fazer depende do BD utilizado.

Com Oracle ficaria algo assim :

CREATE OR REPLACE
TRIGGER 
AFTER
INSERT ON locais
FOR EACH ROW
DECLARE
  aux varchar2(255);
BEGIN
   aux := ´ALTER TABLE PRODUTOS ADD ´ ||NEW.COD||´NUMBER(3);´;
   EXECSQL(AUX);
END;
/  




não testei , agora se um registro for deletado de locais ?


Responder

Gostei + 0

27/04/2006

Thiago Coleti

Olá Motta.... esqueci de informar qual DB eu uso..
uso PostgreSql.... conhece como faria nele??

estou no aguardo.. obrigado..


Responder

Gostei + 0

27/04/2006

Motta

Thiago, infelizmente não domino o ´putzgrila´ , mas acho que o esquema poderia ser o mesmo , pois ele suporta trigger *, mas acho isto meio precário, não seria melhor centralizar o acesso à esta coluna ? afinal não se cria filial todo dia.


* A questão é saber a sintaxe e como executar um comando de DDL.


Responder

Gostei + 0

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

Aceitar