본문 바로가기
mindmap-search

[Sqlite3] Query문 사용시, c_str()사용

by 돌프홍 2009. 3. 17.


char szTemp[1024] = {0,};  // char* 선언시, 메모리를 참조하지 못할 수도 있으므로 char type을 사용한다.
char sQuery[1024] = {0,};



QueryA
:
 - sprintf(szTemp, _T("insert into IndexDB(IndexID, FileName, weight) values (
                               (SELECT IndexID FROM Dictionary where word = '%s'), '%s', 0);"),
                                s_Word.c_str(), szFilename.c_str());
   
QueryA Execute :
 - m_dbMindmap.execQuery(szTemp);

QueryB :
 - sprintf(sQuery, _T("select indexID from Dictionary where Word = '%s';"), s_Word.c_str());

QueryB Execute :
 - qry = m_dbMindmap.execQuery(sQuery);



<sprintf 사용시 주의점>

 
sprintf(sQuery, _T("blabla...Query문 = '%s';"), s_Word.c_str());

// sQuery는, 쿼리문을 저장할 변수.
// _T 는 유니코드로 바꿔주는 역할을 한다.
// 들어가는 단어들은 모두 char* type이어야 한다. 그렇기 때문에 s_Word가 string type이므로
// .c_str()를 붙여준다.
// 그래야 쿼리문이 실행된다