возможно ли прочитать sqlite базу данных БЕЗ библиотеки sqlite3?

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

возможно ли подобное сделать без библиотеки sqlite3 на c++?

(нашел upx, который мне подходит)


Ответы (1 шт):

Автор решения: Alexander Petrov

У вас три варианта на выбор:

  1. Не страдать фигнёй, а подключить dll, за пару минут написать код и пойти пить... чай.

  2. Изучить Database File Format, написать свой парсер этого формата, на что может понадобиться от нескольких недель до нескольких лет.

  3. Экспортировать данные из БД в другой формат, который можно будет легко употребить в вашей программе.

Давайте этим и займёмся.
Идём на SQLite Download Page, качаем Precompiled Binaries for Windows с утилитой командной строки.
Запускаем sqlite3.exe.
Открываем вашу БД:

.open test.db

Вместо test.db укажите имя вашего файла.
В документации смотрим раздел Export to CSV. Выполняем приведённые там команды:

.headers on
.mode csv
.once data.csv
SELECT * FROM tablename;

Это сохранит данные из указанной таблицы в указанный файл в желаемом формате.

Вместо data.csv укажите желаемое имя и путь.
Выберите правильную таблицу.
При необходимости задайте нужные столбцы в SELECT.
Вместо csv можно задать любой другой поддерживаемый формат, с которым вам будет удобней работать, например, json.

После этого можно удалить скачанные ранее файлы sqlite. Также можете удалить саму базу данных.
Теперь файл с данными (csv/json) положите в папку вашей программы (или по известному пути) и читайте данные из него.

На всё про всё нужно не более нескольких минут.

→ Ссылка