Delphi com Oracle 9i

Delphi

08/04/2009

Uso Delphi 5 e Oracle 9i em um determinado projeto, nos demais é Delphi 7. Toda tabela criada no banco, definimos um OWNER para ela. Eu gostaria de fazer meus acessos ao banco, mas sem fixar o OWNER, sem ter que colocar assim: USER.Tabela e etc... Gostaria de criar uma forma de que qualquer OWNER que determinada tabela tivesse, minhas query funcionasse, sem ter que fixar determinado OWNER, porque senão sempre terei que alterar os fontes, caso haja mudança de OWNER de tabela. Tenho dúvida de como fazer.


Paulo

Paulo

Curtidas 0

Respostas

Rodolpho123

Rodolpho123

08/04/2009

Paulo,

Veja este link [url]http://glufke.net/oracle/viewtopic.php?t=2458[/url]. Fala sobre o SYNONYM, pois é o que vc precisa...


GOSTEI 0
Paulo

Paulo

08/04/2009

Acho que não é isso ou eu não entendi. O seguinte. Eu crio minha tabela com um Owner. Aí faço minha aplicação em Delphi apontando para esse Owner, tipo:

Select * from USECD.Tabela

Acontece que eu vou rodar essa aplicação em outro cliente, que eu criei a mesma tabela, porem outro Owner, digamos, FGRT
Para a minha aplicação rodar, eu teria que ir nos fontes e alterar para:

Select * from FGRT.Tabela

Em outras palavras, teria que alterar os fontes sempre que fosse mudar de cliente ou o mesmo, mas com outros privilégios e etc... Isso eu quero evitar, saber buscar o Owner corrente e carregar numa variável e descarregar na minha query, aí não importa o Owner, sempre iria funcionar minha query.


GOSTEI 0
Rodolpho123

Rodolpho123

08/04/2009

Paulo,

É para casos como este que existe o SYNONYM. Vamos ao seu exemplo:

Cliente 1
1 - USECD.Tabela; Criar SYNONYM esta tabela com o nome [b:246bf77c9d]tabela[/b:246bf77c9d]

Cliente 2
2 - FGRT.Tabela; Criar SYNONYM para esta tabela com o nome [b:246bf77c9d]tabela[/b:246bf77c9d]


E dentro da sua aplicação Delphi vc faz:
select * from tabela


Pois o Oracle irá consultar a referência do SYNONYM e apontar para o schema certo.

Entendeu?


GOSTEI 0
POSTAR