2015-05-14 3 views
1

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

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

О да! Я пропустил это, спасибо, человек, это сработало. –

Смежные вопросы