Como identificar programaticamente no aplicativo QML, onde está localizado o meu arquivo de banco de dados sqlite

0

Eu tenho o aplicativo QML que também usa C ++. A partir do C ++ eu preciso conectar ao DB (sqlite). Para isso, preciso saber o nome exato e a localização do arquivo de banco de dados. Como identificar isso? Ou como se conectar do C ++ ao SQLite sem esse local exato?

Enquanto isso, procurei e encontrei este . Por isso, sugiro que seja assim:

$HOME/.local/share/myapplicationname/Database/filewithextension.sqlite

O banco de dados foi criado a partir do aplicativo do javascript usando este comando: db = LocalStorage.openDatabaseSync ("OwnDict.db", "", "App NAme", 100000);

    
por user262898 25.06.2015 / 08:14

1 resposta

1

Os bancos de dados criados a partir do QML LocalStorage são salvos em ~/.local/share/<appid>/Databases/ , onde é o applicationName em seu MainView . Os bancos de dados possuem nomes hexadecimais e a extensão .sqlite . Cada um tem um arquivo .ini associado com o nome e a descrição do primeiro e terceiro argumentos para openDatabaseSync .

Se você criar apenas um banco de dados via LocalStorage, haverá, é claro, apenas um banco de dados nesse diretório. Se você criar mais, você pode ter que analisar os arquivos .ini para encontrar o caminho certo. No entanto, nos meus testes limitados, os arquivos de banco de dados parecem obter nomes de arquivos determinísticos, portanto, você pode descobrir o nome do arquivo em seu dispositivo e, em seguida, codificar esse valor em seu código C ++.

    
por Robert Schroll 01.07.2015 / 17:01