2014-05-02 13 views

回答

5

首先,您應該使用addDatabase添加數據庫連接,驅動程序類型爲QSQLITE,連接名稱爲MyConnection。

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","MyConnection"); 

接下來,您應該設置連接的數據庫名稱並將其打開。

db.setDatabaseName("myfile.sqlite"); 
if(!db.open()) 
{ 
    QMessageBox::warning(this, tr("Failed to connect!"), tr("Error connecting to database: ")+db.lastError().driverText()); 
} 

在你的開發文件夾,你會發現\機器人\資產 - 只是把SQLite數據庫文件到該文件夾​​,它們添加到您的.pro:

deployment.files += myfile.sqlite 
deployment.path = /assets 
INSTALLS += deployment 

但在資產中的文件只讀。所以你應該先把它複製到其他位置:

QFile dfile("assets:/myfile.sqlite"); 
if (dfile.exists()) 
{ 
    dfile.copy("./myfile.sqlite"); 
    QFile::setPermissions("./myfile.sqlite",QFile::WriteOwner | QFile::ReadOwner); 
} 

現在你可以連接到你的數據庫,如上所述。

+0

我按照這些步驟,但是當我建立我的android應用程序的sqlite數據庫從資產文件中刪除?我無法插入或從數據庫中獲取值?請提前幫助並提前致謝 –

+1

@noname您也可以使用Qt Resource系統,這是一個跨平臺的解決方案。默認情況下,所有Qt應用程序都可以使用':/'前綴或URL方案前綴'qrc:'來訪問qrc文件的內容。所以你需要的只是將sqlite文件添加到項目資源文件中,並將其複製到某個位置並在以後使用 – Nejat

+0

感謝您的回覆,我嘗試此操作並將其複製到其目錄中,但是當我想插入值到數據庫我得到這個文件只讀,但我使用我的文件的setpremissions和相同的:嘗試這個文件只讀 –

相關問題