2016-10-06 6 views
0

私は私のcookie-db of firefoxからクッキーを取得しようとしています。ただし、何らかの理由でデータベースが開かない。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"); 
関連する問題