Delphi com Oracle 9i
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
Curtidas 0
Respostas
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...
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
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.
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
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:
Pois o Oracle irá consultar a referência do SYNONYM e apontar para o schema certo.
Entendeu?
É 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