본문 바로가기
Qt

[Qt] SELECT 명령어 사용 (WHERE)

by 목가 2016. 8. 1.
반응형

데이터베이스 검색을 할 때 특정 조건에 부합하는 내용들만 검색하고 싶은 경우 SELECT FROM WHERE 명령어를 사용한다. 


데이터베이스 명령어만 알면 쉽게 할 수 있다. 다만 qt 에서 사용하다보면 한글로 가져올 때 문제가 발생하기도 한다. 왜냐면 한글이 깨지기 때문에...이놈의 utf-8....


간단한 샘플은 아래와 같다.


query.exec("SELECT * FROM realestate WHERE id=3");


realestate 테이블에서 id 3인 모든 데이터들을 가져온다. 


그럼 한글로 검색해볼까?


query.exec("SELECT * FROM realestate WHERE buildingname='한화테크윈R&D');


결과는????????????


못가져온다. ??? why??? 한화테크윈R&D 라는 값이 "" 속에서 인코딩형식이 맞지 않게 전달되는 것 같다. 

따라서 SELECT 명령어를 전달할 때 QString 에 잘 넣어줘서 인코딩 한 후에 넣어주자.


QString buildingName = QString::fromUtf8("'한화테크윈R&D'");

QString queryString = QString("SELECT * FROM realestate WHERE buildingname=") + buildingName;


query.exec(queryString);


이렇게 실행하면 한글이 제대로 인코딩되서 전달되고, 검색이 잘되는 것을 확인 할 수 있다. 


반응형

댓글