A friend of mine was facing a very strange error yesterday while doing a check out of an Applet. The error message was as following
23000 (-196): [Siebel Database][ODBC Driver][Adaptive Server Anywhere]Index ‘S_CONTROL_P1’ for table ‘S_CONTROL’ would not be unique
So, I started looking into what could be the probable cause of this error. When we tried to check out that applet on somebody else’s system we were able to do it. Even getting SIF from somebody’s local didn’t solve the problem.
I went to ‘S_CONTROL’ table and looked at S_CONTROL_P1 index defined on that table. It just had one column that was ‘ROW_ID’. So, I went and compared the Row Id for that applet on Server database and Local DBF and bingo!!!
The Row Id’s of the both the records were different. Normally they are same both on server database and local dbf and I am not sure what happened for this particular applet I can only assume one scenario where this can happen.
“I get the Applet on my local. Then somebody goes on server deletes this applet record and creates a new one resulting in Row Id mismatch.”
I resolved the issue by updating ROW_ID column of that applet record in local DBF so that it matches the row id of the server record. After that applet check out and GET worked without any problem.