Subject | Error with circular reference while inserting or updating |
---|---|
Author | Andrei Luís |
Post date | 2011-11-18T02:40:01Z |
Hi,
IBO 4.9.9 + BDS 2006 + FB 2.5
I'm trying to insert/update a table using a TIB_Query with the following SQL:
select P.REGISTRO_ID, P.CODIGO, P.CODIGO2, P.PRODUTO, P.VALOR_COMPRA,
P.VALOR_VENDA,
P.CLASSIFICACAO_FISCAL, P.CLASSIFICACAOFISCAL_ID,
P.GRUPO_ID, P.MONTADO, P.ATIVO, P.UNIDADE, P.DESENHO,
P.CODIGOMP_ID, P.QTDEMP
,MP.PRODUTO as produto_mp
from produtos p
left join produtos mp on mp.registro_id=p.codigomp_id
Keyrelation = p
Keylinks = p.registro_id
Please note that I'm doing a circular reference, doing a join with the
same table specified in the from clause.
I do a query.edit or .insert, and when I call a post, the following
exception is raised:
ISC ERROR CODE: 335544569
SQL error code: -206
Column PRODUTOS.PRODUTO cannot be repeated in UPDATE statement
I removed the line ,MP.PRODUTO as produto_mp (but I didn´t remove the
left join ....) and the error is gone.
I changed the left join to a subselect ((Select produto from produtos
where registro_id=p.codigomp_id) as produto_mp), it worked.
My questions are:
- Why I'm getting this error, and how to correct it?
- Which is the best? left join or subselect?
[]s
Andrei
IBO 4.9.9 + BDS 2006 + FB 2.5
I'm trying to insert/update a table using a TIB_Query with the following SQL:
select P.REGISTRO_ID, P.CODIGO, P.CODIGO2, P.PRODUTO, P.VALOR_COMPRA,
P.VALOR_VENDA,
P.CLASSIFICACAO_FISCAL, P.CLASSIFICACAOFISCAL_ID,
P.GRUPO_ID, P.MONTADO, P.ATIVO, P.UNIDADE, P.DESENHO,
P.CODIGOMP_ID, P.QTDEMP
,MP.PRODUTO as produto_mp
from produtos p
left join produtos mp on mp.registro_id=p.codigomp_id
Keyrelation = p
Keylinks = p.registro_id
Please note that I'm doing a circular reference, doing a join with the
same table specified in the from clause.
I do a query.edit or .insert, and when I call a post, the following
exception is raised:
ISC ERROR CODE: 335544569
SQL error code: -206
Column PRODUTOS.PRODUTO cannot be repeated in UPDATE statement
I removed the line ,MP.PRODUTO as produto_mp (but I didn´t remove the
left join ....) and the error is gone.
I changed the left join to a subselect ((Select produto from produtos
where registro_id=p.codigomp_id) as produto_mp), it worked.
My questions are:
- Why I'm getting this error, and how to correct it?
- Which is the best? left join or subselect?
[]s
Andrei