Не могу открыть базу данных с помощью SQLite на UWP, написанном на C ++ - PullRequest
0 голосов
/ 18 мая 2018

Я делаю UWP, в котором мне нужно получить доступ к базе данных.Для этого я сначала скачал и установил универсальную платформу Windows SQL по этой ссылке:

https://sqlite.org/download.html

После того, как это было сделано, я добавил его в качестве ссылки и включил в свой код с помощью:

#include <sqlite3.h> //Not sure if I need to make any other changes for this to work

Для устранения неполадок у меня есть только кнопка и текстовое поле.Это код, который запускается при нажатии кнопки:

    int rc;
    sqlite3 *testDB;

    if (SQLITE_OK == (rc = sqlite3_open("signers.db", &testDB))) { 
        Message->Text = "It worked!";
    }
    else {
        Message->Text = "Can't open Database";
    }

signers.db - это база данных, которую я создал с помощью SQLite, чтобы у меня были данные для чтения из моей программы.Каждый раз, когда я запускаю программу, появляется текст «Не удается открыть базу данных».Я перепробовал каждое решение, которое вижу в Интернете, но ни одно из них не работает для меня, поэтому я думаю, что что-то наблюдал.Я довольно новичок в UWP, а также в использовании баз данных.

Если вам нужна дополнительная информация, не стесняйтесь спрашивать ее.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Если у вас есть база данных в папке вашего пакета, она доступна только для чтения.Вам нужно использовать sqlite3_open_v2 и передавать флаг SQLITE_OPEN_READONLY.

Если вы хотите открыть базу данных для чтения / записи, вам нужно сначала скопировать ее в локальную папку.

(Также убедитесь, что у вас действительно настроена база данных для развертывания; в окне свойств убедитесь, что она установлена ​​на Content и что она будет скопирована в выходной каталог).

0 голосов
/ 18 мая 2018

Согласно

https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

у вас есть некоторые ограничения на местоположение, где находится файл БД, который вы хотите открыть.Сам sqlite должен работать.Попробуйте открыть базу данных в папке, указанной в статье.

Может также быть просто поврежденный файл базы данных.Вы пытались создать пустой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...