Page 1 of 1

TbDossier: Key field 'SYS_NC00048$' not found

Posted: Mon 28 Oct 2013 14:42
by rc
I work with Unidac components on PostgreSql and Oracle databases.
In PostgreSql, my program works fine. In Oracle, I get this message when I try to insert a line from TUnitable TbDossier :
TbDossier: Key field 'SYS_NC00048$' not found
Inserting the line directly in the database (using SQLDeveloper) works fine.

Indeed field SYS_NC00048$ does not exist and is not referenced either in database nor in my program.

Hax anyone an idea about the origin of my problem ?

Thanks.

Re: TbDossier: Key field 'SYS_NC00048$' not found

Posted: Mon 28 Oct 2013 14:57
by AlexP
Hello,

Please provide the TbDossier table script.

Re: TbDossier: Key field 'SYS_NC00048$' not found

Posted: Tue 29 Oct 2013 15:01
by rc
I found the origin of the problem : I had a function based index on this table. And in this case, Oracle add to the table an hidden column named SYS_NC000x to store the results of the function.

Apparently DbAccess TDaDatasetService.FillKeyFieldDescs method detected the existence of this column, but was not able to retrieve it.

I modified the index in order not to use any function in it, and the problem disappeared.

Thank you for you interest

Roland

Re: TbDossier: Key field 'SYS_NC00048$' not found

Posted: Wed 30 Oct 2013 07:13
by AlexP
Hello,

Glad to see that you solved the problem. If you have any other questions, feel free to contact us