2016-10-06 112 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");