In the below C++ code, i am updating a field of emp table based on the search value. But this code is not working properly. I am getting output as aborted.
void UpdateData(string field_name,string updated_value,string search_value)
{
stmt->createStatement("UPDATE emp SET :1=:2 where search=:3");
stmt->setString(1,field_name);
stmt->setString(2,updated_value);
stmt->setString(3,search_value);
stmt->executeUpdate();
}
In my program user will select which field they have to update and the selected field name is passed into function as field_name parameter. updated_value is the new value entered by the user and search_value is the search key to find the appropriate record.
If i do like
stmt->createStatement(“UPDATE emp SET field_name=:2 where search=:3”);
its working..
But the problem is, the field name will change according to user selection. How i can overcome this problem. Is there any other way ?
You can’t set the name of the field with the
statement->setString()method; only the values of the variables can be bound like that.I know of only two solutions to achieve this (both aren’t particularly nice):
Dynamically create the statement string
Prepare individual statements, each affecting one field and choose at runtime