Kod: Tümünü seç
Ambiguous field name between table RDB$RELATION_CONSTRAINTS and table RDB$RELATIONS
RDB$RELATION_NAME.
aslangeri yazdı:s.a.
kullandığınız veritabanının versiyonu ile firebird ve providerların versiyonlarını kontrol edin derim.
"Ambiguous field name" ile başlayan hatalar genelde select yaptığınız iki tabloda aynı isimde bir alan var ve select ifadesinde bu alanın hangi tablodan alınacağı belirtilmemiş demek oluyor. hata mesajındaki tablolar sistem tabloları olduğu için ya bağlantıdan sonra vt bilgilerini alırken bu hata oluyor yada sizin select ifadenizi bir gözden geçirmeniz gerekiyor. tabi versiyonlarda bir karışıklık yoksa.
kolay gelsin.
aslangerinin de dediği gibi eğer sorgu esnasında aynı alana sahip iki veya daha fazla tablo üzerinden veri çekiliyorsa bu hatayı verir.
örneğin
ILLER tablosunda ILADI alanı var
ve ILCELER tablosunda ILCEADI,ILADI alanları var
Kod: Tümünü seç
select ILADI,ILCEADI from ILLER left join ILCELER on ILCELER.ILADI=ILLER.ILADI
deyimi bu hataya sebep olur
çünkü burada ILADI her iki tabloda da vardır hangi tablodan alınacak belirlitlmemiştir.
doğrusu
Kod: Tümünü seç
select ILLER.ILADI,.ILCELER.ILCEADI from ILLER left join ILCELER on ILCELER.ILADI=ILLER.ILADI
şeklinde yazılabilir.
Buradan yola çıkarak
RDB$RELATION_CONSTRAINTS
RDB$RELATIONS
RDB$RELATION_NAME tabloları sistem tablolarıdır ve içlerinde bazı bilgiler tutarlar.
Veritabanına bağlanıldığında bağlanan provider bu ve diğer system tablolarından user tabloları, procedureleri, sabitleri, exceptionları vs... gibi bilgileri okur ve vritabanını buna göre yönetir.
Sonuç olarak kullandığınız provider da bug olabilir.