ORA-00904: «E_MAIL»: неверный идентификатор

Я использую архитектуру MVC. Я пытаюсь обновить запись в таблице, принимая идентификатор клиента в качестве ввода.
все данные берутся как входные данные в моем классе viewcustomer.cpp, чей метод возвращает объект типа customer, который передается функции в modelcustomer.pc через controlcustomer.cpp (controller)
Следующее является функцией моего modelcustomer.pc

void modelcustomer::dbUpdateCustomerDetail(customer &c)
{

id=c.getId();
ph=c.getId();
string memberFName=c.getFname();
string memberLName=c.getLname();
string memberStreet=c.getStreet();
string memberCity=c.getCity();
string memberState=c.getState();
string memberEmail=c.getEmail();
fn=new char[memberFName.length()+1];
ln=new char[memberLName.length()+1];
street=new char[memberStreet.length()+1];
city=new char[memberCity.length()+1];
state=new char[memberState.length()+1];
e_mail=new char[memberEmail.length()+1];
strcpy(fn,memberFName.c_str());
strcpy(ln,memberLName.c_str());
strcpy(street,memberStreet.c_str());
strcpy(city,memberCity.c_str());
strcpy(state,memberState.c_str());
strcpy(e_mail,memberEmail.c_str());
if(dbConnect())
{
EXEC SQL UPDATE CUSTOMER_1030082 SET CID=:id,FNAME=:fn,LNAME=:ln,PHONE=:ph,STREET=:street,STATE=:state,CITY=:city,EMAIL=e_mail;
if(sqlca.sqlcode<0)
{
cout<<"error in execution"<<sqlca.sqlcode<<sqlca.sqlerrm.sqlerrmc;
}
EXEC SQL COMMIT WORK RELEASE;
}
}

когда я запускаю его, отображается меню с некоторыми опциями, я выбираю опцию обновления, затем он запрашивает у меня новые подробности, и после этого я получаю следующий вывод:

connected to Oracle!
error in execution-904ORA-00904: "E_MAIL": invalid identifier

1

Решение

e_mail это не параметр, вы забыли ::

EXEC SQL … EMAIL=:e_mail;
↑
1

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


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