GARANTIR DESCONTO

Fórum Ambiguous field name between table RDB$RELATION_CONSTRAINTS #334314

06/12/2006

0

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

Responder

Posts

06/12/2006

Emerson Nascimento

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É´


Responder

Gostei + 0

06/12/2006

Emerson Nascimento

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.


Responder

Gostei + 0

07/12/2006

Adam

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


Responder

Gostei + 0

07/12/2006

Emerson Nascimento

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


Responder

Gostei + 0

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

Aceitar