2017-10-17 3 views
0

J'ai deux requêtes qui insère et met à jour le DB-a besoin de gérer les noms qui a une citation à l'intérieur

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() + "'"; 

jusqu'à présent, il fonctionnait très bien pour les noms réguliers, mais il est confronté à des problèmes lors de la LineManager nom est comme-'Doko N'dah, M. Dominick '. Il lance des exceptions pendant l'exécution.

Quelqu'un peut-il aider à résoudre ce problème?

+2

paramètres d'utilisation. Ne pas munir les chaînes de requête avec des paramètres. –

Répondre

3

Utilisation 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();