Como posso usar o sqlite3 no meu aplicativo do Ubuntu Phone? (Backend C ++)

3

Eu quero criar um aplicativo que tenha um backend de C ++ e use o sqlite3. Eu posso conectar a um banco de dados na memória usando o seguinte código: m_db = QSqlDatabase::addDatabase("QSQLITE"); m_db.setDatabaseName(":memory:"); m_db.open();

Mas não sei qual caminho devo usar ou o que devo fazer para criar um arquivo de banco de dados local no meu telefone. Se eu executar o aplicativo no meu computador, posso substituir ":memory:" por qualquer caminho que eu queira.

Obrigado

    
por p0kR 09.04.2016 / 20:59

1 resposta

0

Eu tenho a pista de um comentário para essa pergunta que não consigo encontrar mais.

Se você quiser escrever / ler no sistema de arquivos, você deve cuidar do confinamento do aplicativo no Ubuntu. Um aplicativo confiável que não seja do sistema operacional normal pode gravar apenas em alguns diretórios "privados" limitados e ler mais alguns diretórios. Você pode usar a classe QStandardPaths para encontrar esses diretórios. Por exemplo, para obter o diretório de dados graváveis, uso QStandardPaths::writableLocation(QStandardPaths::DataLocation) e, com QStandardPaths::standardLocations(QStandardPaths::DataLocation) , obtenho todos os diretórios de dados legíveis. Funciona para eu criar meu arquivo sqlite3 no diretório de dados graváveis.

A propósito: você pode obter outros tipos de diretórios para seu aplicativo usando QStandardPaths (por exemplo temp, cache, ...).

Os confinamentos do aplicativo do Ubuntu estão disponíveis aqui .

    
por p0kR 15.04.2016 / 00:25