Subject INSERT .. RETURNING not returning any record when using ADO .NET Provider
Author Mikkel Nygaard

Hello all


We are running Firebird on a Cubox (ARM device) with Ubuntu 10.4. I’m using the ADO.NET Provider installed via NuGet and almost everything works as it should. I’m developing cross-SQL ORM and I’ve been using the RETURNING statement to retrieve the ID (or other trigger-generated values) of a newly inserted row. This works like a charm on Oracle and MSSQL but in Firebird the RETURNING statement doesn’t return anything. The documentation says:


“In DSQL, a statement with a RETURNING clause always returns exactly one row. If no record was actually inserted, the fields in this row are all NULL. This behaviour may change in a later version of Firebird. In PSQL, if no row was inserted, nothing is returned, and the receiving variables keep their existing values.”


No record is returned.


I found this bug report which seems to describe my problem, but it was reported 4 years ago and apparently not yet solved.


Is there any way for me to get around this issue without having to fix and build the code myself, as suggested in the bug report comments?


Best Regards

Mikkel Nygaard