2016-10-06 1 views
0

파이어 폭스의 쿠키 -db에서 쿠키를 가져 오려고합니다. 그러나 어떤 이유로 데이터베이스가 열리지 않습니다.Qt : DB 연결이 열리지 않습니다.

QString tgc; 
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("C:\Users\myaccount\AppData\Roaming\Mozilla\Firefox\Profiles\234f25fs.default\cookies.sqlite"); 
bool ok = db.open(); 
if (!ok) 
{ 
    // qDebug() << "Error: connection with database fail"; 
} 
else 
{ 
    QSqlQuery query("SELECT value WHERE name='TGC' FROM moz_cookies"); 
    if (query.next()) 
    { 
     tgc = query.value(0).toString(); 
    } 
} 
db.close(); 
return tgc; 

그러나 db.open()은 false를 반환합니다. 그 이유는 무엇일까요?

+0

사용 슬래시 또는 백 슬래시를 이스케이프 :

그래서, 당신의 setDatabaseName 전화는 다음과 같이 보일 것입니다 –

답변

3

C 및 C++에서 \ 문자는 기본적으로 이스케이프 문자로 사용되며 특수 문자 (예 : 줄 바꿈 문자를 의미하는 '\n')를 나타내는 데 사용됩니다. 문자열 리터럴에서 실제로 사용하려고 할 때 이스케이프 처리해야합니다. `/`대신 백 슬래시의

db.setDatabaseName("C:\\Users\\myaccount\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\234f25fs.default\\cookies.sqlite"); 
관련 문제