2016-10-06 111 views
0

我想从我的Cookie-db的firefox中获取cookie。但是,由于某种原因,数据库无法打开。Qt:数据库连接不会打开

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

用斜杠'/'的,而不是反斜杠或逃避你的反斜线 –

回答

3

在C和C++中,\字符默认用作转义字符,它们用于表示一些特殊字符(如'\n',表示换行符)。当你想要在字符串文字中实际使用它们时,你需要将它们转义出来。

所以,你的电话setDatabaseName应该是这个样子:

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