Internally, QlikView uses all the non-inputfield fields from the table to create a composite primary key for each inputfield value. (starting in QV10)
Your error indicates that some records have the same combination of the non-inputfields.
For example a table A has the fields: X, Y, Z and W. W is declared as an Inputfield. The problem will occur if there are two or more records with the same combination of values for the fields X, Y and Z. This is because when you change one input value in field W, QlikView will not be able to correctly assign the value.
So answering your questions:
1. This problem happens only in QV10 because inputfields functioned differently in QV9.
2. You need to ensure that there are no duplicate records in the non-inputfield fields.
Conceptually your app has the same error. Since you only created one field which was declared as an inputfield, QlikView doesn't have a non-inputfield field to create a key. You must create another field with a unique number for each row.