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.
Solution:
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.

(4 votes, average: 4.75 out of 5)
3 Comments at "Index not unique error during Check Out or Get"
that’s a nice tip.
The same happened to me, but I didn’t go that far in my investigations, I just re extracted my local database ^^
Hi Neel
The same issue also heppens when you make chnages on your local DB and then try to checkout the object from server.
Like you have mentioned in your scenario if you delete the control on your local adn recreate it, you will get the same issue.
Jeevan
The same error pops up when you have different projects for the same objects on Server and Local DB. Check with the project names and proceed.
Comment Now!