Ambiguous field name between table RDB$RELATION_CONSTRAINTS

Delphi

06/12/2006

Estou utilizando os componentes Borland Data Provider que vem com o Delphi 2006, estou desenvolvendo uma aplicação ASP.NET Web Application utilizando os componente DataGrid, BdpConnection, BdpDataAdapter e DataSet, consigo configurar a conexão normalmente, mas quando entro no Data Adapter Comnfiguration e tento gerar uma SQL aparece a seguinte mensagem:
---------------------------
Borland Data Provider
---------------------------
Ambiguous field name between table RDB$RELATION_CONSTRAINTS and table RDB$RELATIONS
RDB$RELATION_NAME
---------------------------
OK
---------------------------
Alguém sabe o que pode ser?
Quando eu gero a query manualmente e depois seleciono um DataSet aparece a seguinte mensagem de erro também:
---------------------------
Borland Data Provider
---------------------------
TableMapping update failed: Ambiguous field name between table RDB$RELATION_CONSTRAINTS and table RDB$RELATIONS
RDB$RELATION_NAME
---------------------------
OK
---------------------------

Não tenho muita experiência em desenvolvimento ASP.NET com delphi, alguém tem uma dica de onde eu posso começar?

Abraço!

Desde já agradecido


Adam

Adam

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

06/12/2006

isso ocorre por conta da instrução sql.

imagine o seguinte:

tabela1
---------
nome
endereco
telefone

tabela2
---------
nome
profissao
nascimento

instrução:
select * from tabela1 tab1 left join tabela2 tab2 on (tab2.nome=tab1.nome)
where nome = ´ZÉ´

note que há o campo [i:7cc6fac38f]nome[/i:7cc6fac38f] nas duas tabelas. nesse caso o mecanismo não sabe qual utilizar no where, gerando a mensagem de ambiguidade de campos. para solucionar isso, basta fazer:


select * from tabela1 tab1 left join tabela2 tab2 on (tab2.nome=tab1.nome)
where [b:7cc6fac38f]tab1.[/b:7cc6fac38f]nome = ´ZÉ´


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

06/12/2006

note que o mesmo ocorreria na lista de campos selecionados:
select nome, endereco, profissao
from tabela1 tab1
left join tabela2 tab2 on (tab2.nome=tab1.nome)
where nome = ´ZÉ´

o mecanismo teria problema tanto no select quanto no where, por conta do campo [i:8ae8ecf649]nome[/i:8ae8ecf649]. o campo [i:8ae8ecf649]endereco [/i:8ae8ecf649]existe somente na tab1, o campo [i:8ae8ecf649]profissao [/i:8ae8ecf649]existe somente na tab2, mas o campo [i:8ae8ecf649]nome [/i:8ae8ecf649]existe em ambas e ele não sabe qual selecionar.


GOSTEI 0
Adam

Adam

06/12/2006

Mas quando eu tento fazer a conexão com apenas uma tabela ocorre o mesmo problema, o que deve ser?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

06/12/2006

publique as instruções que estão dando problema...


GOSTEI 0
POSTAR