Входные данные не назначены SQL-запросу

Обновление sql ниже не будет работать, но оно будет обновляться, если я закомментирую «cin name» при обновлении сотрудника. Я не понимаю, потому что я уже спрашивал имя сотрудника во время поиска сотрудника, поэтому переменной имени следует присвоить данные, но этого не происходит. Кто-нибудь, помогите мне, пожалуйста? Спасибо.

            EXEC SQL BEGIN DECLARE SECTION;
//int customer_id,cu_id;
char salary[10],address[50];
char name[50];
EXEC SQL END DECLARE SECTION;

fnConnectDB();

cout<<"Customer Id\t\t: ";
cin.getline(name,50); // search employeeEXEC SQL SELECT * INTO :salary,:address,:name FROM EMPLOYEES WHERE NAME = :name;
// output empoyee information
cout<<"\nCustomer Name\t\t: "<<name;
cout<<"\nCustomer contact\t: "<<salary;
cout<<"\nCustomer status\t\t: "<<address;
cout<<"\n\nEnter new value for customer:\n\n";

// update employee
//  cout<<"Customer name\t\t: "; // if I comment out this it will update
//  cin.getline(name,50);   // if I comment out this it will update
cout<<"Customer salary\t\t: ";
cin.getline(salary,10);
cout<<"Customer address\t\t: ";
cin.getline(address,50);

// check employee name if it initialize
cout<<"\nCustomer Name\t\t: "<<name;

EXEC SQL UPDATE EMPLOYEES SET SALARY=:salary, ADDRESS=:address WHERE NAME = :name;

0

Решение

Я думаю, что вы должны заменить NAME = :name с NAME = 'name'

Вместо использования двоеточия в качестве :название в каком состоянии, поставить имя под одинарные кавычки так же, как мы делаем в запросе SQL.

Проверьте эту ссылку: http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0005909.htm

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]