2017-10-17 10 views
0

내부 견적을 가지고 이름을 처리해야하고내가 삽입 두 개의 쿼리가

insertSQL = "insert into LineManager(LINEMANAGERID,LINEMANAGERNAME,BUSINESSGROUPID,STATUS) VALUES('" + lineManager.getLineManagerID() + "','" + lineManager.getLineManagerName() + "','" + lineManager.getBusinessGroupID() + "','" + lineManager.getStatus() + "')"; 

updateSQL = "update LineManager set BUSINESSGROUPID ='" + lineManager.getBusinessGroupID() + "' , LINEMANAGERNAME ='" + lineManager.getLineManagerName() + "' , STATUS ='" + lineManager.getStatus() + "' where LINEMANAGERID='" + lineManager.getLineManagerID() + "'"; 

지금까지 정규 이름에 대해 잘 작동 된 DB-를 업데이트하지만이 때 LineManager 문제에 직면하고있다 이름은 '도코 누다 (Doko N'dah), 도미닉 (Dominick)'과 같습니다. 실행 중에 예외가 발생합니다.

누구든지이 문제를 해결할 수 있습니까?

+2

를 사용하여 매개 변수를 설정합니다. 매개 변수로 쿼리 문자열을 munge하지 마십시오. –

답변

3

사용 bind variables :

QSqlQuery query; 
query.prepare("insert into LineManager(LINEMANAGERID,LINEMANAGERNAME,BUSINESSGROUPID,STATUS) VALUES(:id,:name,:groupid:status)"); 
query.bindValue(":id",  lineManager.getLineManagerID()); 
query.bindValue(":name", lineManager.getLineManagerName()); 
query.bindValue(":groupid", lineManager.getBusinessGroupID()); 
query.bindValue(":status", lineManager.getStatus()); 
query.exec();