Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Пятничная база данных  [new]
CEMb
Member

Откуда: Столько
Сообщений: 1994
Добрый день

Тут оказалось, что MSSQL Native Client и MSSQL LocalDB не идут в Windows "из коробки".
Поэтому встал вопрос: как, ничего не инсталлируя на стороне клиента и не используя лишние копирайты в коде(т.е. минимум чужого кода), получить более-менее систематизированное хранилище информации на стороне клиента? Данных ожидается не сильно много, 1-2-3 таблички, по 100 строк. Ну, ±порядок или два (система в разработке, аппетиты растут).

Программа максимум: база с таблицами, откуда можно получать данные, используя sql, запросы можно было бы строить динамически в коде программы. Т.е. выборка, сортировка.

Понятно, что если "никак", то свою СУБД я писать не буду, но возможно есть какие-то промежуточные варианты, например sort и find из stl, структуры с хешами, или ещё что?
6 фев 20, 13:56    [22074690]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50076

std::map

Posted via ActualForum NNTP Server 1.5

6 фев 20, 14:00    [22074698]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14760
SQLite

https://habr.com/ru/post/149356/

Сообщение было отредактировано: 6 фев 20, 14:05
6 фев 20, 14:02    [22074704]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
Dima T
SQLite

https://habr.com/ru/post/149356/
+1

Сообщение было отредактировано: 6 фев 20, 15:09
6 фев 20, 15:09    [22074827]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
Dima T
SQLite

https://habr.com/ru/post/149356/

+1
6 фев 20, 15:10    [22074830]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
CEMb
Member

Откуда: Столько
Сообщений: 1994
Dimitry Sibiryakov
std::map
сейчас использую пару unordered_map(для быстрого доступа) + vector(для итераций)
вообще, я сильно не вдумывался, но мне кажется, что если подойти с умом, на новых плюсах можно легко сделать некое маленькое урезанное подобие СУБД.

Dima T, YUBA, PetroNotC Sharp
SQLite
ага, я про неё тоже думал. И если её можно статически слинковать будет, то подойдёт.
А вот не знал, что «SQLite is the most used database engine in the world», и это замечательно.
Спасибо большое.
7 фев 20, 19:49    [22075786]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50076

CEMb
А вот не знал, что /«SQLite is the most used database engine in the world»/, и это
замечательно.

Теперь ты знаешь почему тормозит каждый первый Firefox и Thunderbird, а приложения на
Android жрут батарейку как не в себя.

Posted via ActualForum NNTP Server 1.5

7 фев 20, 19:56    [22075788]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
miksoft
Member

Откуда:
Сообщений: 38323
CEMb
ничего не инсталлируя на стороне клиента
Microsoft Jet Database Engine
7 фев 20, 20:02    [22075789]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
Dimitry Sibiryakov, фигня. Под Винды SQLite оч надежная и шустрая. При соответствующей конфигурации. Где-то здесь у меня тема была на эту тему.)
7 фев 20, 20:44    [22075797]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
CEMb
Добрый день

Тут оказалось, что MSSQL Native Client и MSSQL LocalDB не идут в Windows "из коробки".
Поэтому встал вопрос: как, ничего не инсталлируя на стороне клиента и не используя лишние копирайты в коде(т.е. минимум чужого кода), получить более-менее систематизированное хранилище информации на стороне клиента? Данных ожидается не сильно много, 1-2-3 таблички, по 100 строк. Ну, ±порядок или два (система в разработке, аппетиты растут).

Программа максимум: база с таблицами, откуда можно получать данные, используя sql, запросы можно было бы строить динамически в коде программы. Т.е. выборка, сортировка.

Понятно, что если "никак", то свою СУБД я писать не буду, но возможно есть какие-то промежуточные варианты, например sort и find из stl, структуры с хешами, или ещё что?

Реестр можно попробовать. Тоже вроде как БД. Key-value. Есть иерархия. Есть типы данных. Политики безопасности.
Правда я не знаю какие ограничения. Сколько гигов инфы можно туда влить. Но я-б попробовал из спортивного интереса.
7 фев 20, 20:55    [22075799]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
YUBA
Dimitry Sibiryakov, фигня. Под Винды SQLite оч надежная и шустрая. При соответствующей конфигурации. Где-то здесь у меня тема была на эту тему.)

Да согласен.

Под винду SQLite - это действительно серебрянная пуля. И бесплатно. И инсталляция - копированием. Вот у меня
щас что-то лежит в виндозной машинке. Вот это и всё.

12/01/2018  03:39 PM           490,496 sqldiff.exe
12/01/2018  03:40 PM           911,360 sqlite3.exe
12/01/2018  03:40 PM         2,003,968 sqlite3_analyzer.exe


Единственное что лично мне не понравилось. Лайтовый диалект SQL не поддерживает Connect-By-Prior.
И вместо этого он предлагает достаточно нетриваильную конструкцию рекурсивного запроса. На вид там
в 2 раза больше кода надо написать чтоб тот-же резалт получить. Вобщем Лайт тяготеет к очень коротким
запросам вида Key-Value где нет долгих процессов и аналитики.

Из области применения.... ну вроде как раньше Skype хранил свои базы контактов в лайтовом датасегменте.
Помню когда Скайп у меня йо6..нулся я поднимал переписку как-то вручную открыв через соотв лайтовое software.
7 фев 20, 21:01    [22075802]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
CEMb
Member

Откуда: Столько
Сообщений: 1994
Dimitry Sibiryakov
Теперь ты знаешь почему тормозит каждый первый Firefox и Thunderbird, а приложения на
Android жрут батарейку как не в себя.
Вот как...
miksoft
Microsoft Jet Database Engine
Спасибо, про него я совсем забыл!
mayton
Реестр можно попробовать.
Нет, тяжеловато будет. И я не уверен, что большие объёмы потом не скажутся на производительности ОС.
Ну и select/sort там трудновато сделать. А у меня уже есть выборки с сортировкой.
YUBA
Где-то здесь у меня тема была на эту тему.)
Да, я бы почитал.
7 фев 20, 21:26    [22075819]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Изопропил
Member

Откуда:
Сообщений: 31468
miksoft
CEMb
ничего не инсталлируя на стороне клиента
Microsoft Jet Database Engine

А что там с разрядностью 32/64 и сервиспаками?
Ну его от греха подальше
7 фев 20, 21:35    [22075825]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
CEMb,
https://www.sql.ru/forum/1313413/faylovaya-bd-sqlite-v-pamyati?hl=sqlite
и
https://www.sql.ru/forum/1315188/sqlite-v-mnogopotochnoy-programme?hl=sqlite
Возможно что-то здесь может полезным оказаться.
7 фев 20, 21:35    [22075826]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
CEMb
mayton
Реестр можно попробовать.
Нет, тяжеловато будет. И я не уверен, что большие объёмы потом не скажутся на производительности ОС.
Ну и select/sort там трудновато сделать. А у меня уже есть выборки с сортировкой.

А ты разложи данные правильно. Чтоб лежали уже сгруппированные.
7 фев 20, 21:44    [22075831]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
mayton
Единственное что лично мне не понравилось. Лайтовый диалект SQL не поддерживает Connect-By-Prior.
дерево это не родная модель данных для СУБД
8 фев 20, 08:18    [22075902]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
Dimitry Sibiryakov
а приложения на
Android жрут батарейку как не в себя.

Андроид причём?
Уже давно не жрёт. С шестой версии 2016год Режим Doze
https://developer.android.com/about/versions/nougat/android-7.0-changes.html?hl=ru
8 фев 20, 08:24    [22075903]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Про Андроид - было как-то не по теме.
Игроки в игры больше всего сажают аккумуляторы но причина тут - далеко не в SQlite.

Каждый такой случай надо рассмотреть отдельно.
8 фев 20, 09:41    [22075914]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
CEMb
ничего не инсталлируя

А код твой как на целевую машину попадет? :)
...
У нас есть вариант инсталляции "Мобильная инсталляция", когда софт ставится на флешку, а эту флешку потом можно носить с собой и втыкать в любые компы и работать сразу.
Ну вот, там у нас используется Firebird 2.5 ембеддед, на ней мы даже имитацию системного реестра сделали, плюс она же сервер для локальных данных плюс она же клиент для доступа к удаленному серверу.
Почему именно FB, не Sqlite? Прежде всего потому что FB embedded разрешает параллельную/одновременную запись из разных потоков/процессов, ну и полноценная субд с транзакциями, развитым языком и т.д., в отличии от.
8 фев 20, 15:42    [22076014]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
ёёёёё
Почему именно FB, не Sqlite? Прежде всего потому что FB embedded разрешает параллельную/одновременную запись из разных потоков/процессов, ну и полноценная субд с транзакциями, развитым языком и т.д., в отличии от.
И SQLite разрешает.
8 фев 20, 16:31    [22076036]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Изопропил
Member

Откуда:
Сообщений: 31468
YUBA
И SQLite разрешает.

сериализовать запись ему правда приходится
8 фев 20, 16:40    [22076044]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
YUBA
ёёёёё
Почему именно FB, не Sqlite? Прежде всего потому что FB embedded разрешает параллельную/одновременную запись из разных потоков/процессов, ну и полноценная субд с транзакциями, развитым языком и т.д., в отличии от.
И SQLite разрешает.

Нет.

Сообщение было отредактировано: 8 фев 20, 18:41
8 фев 20, 18:41    [22076079]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
ёёёёё
YUBA
пропущено...
И SQLite разрешает.

Нет.
Читайте документацию SQLite. Что может и не может в МПП - все написано.
8 фев 20, 19:06    [22076085]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
YUBA
ёёёёё
пропущено...

Нет.
Читайте документацию SQLite. Что может и не может в МПП - все написано.

Да.
8 фев 20, 19:11    [22076088]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
CEMb
Member

Откуда: Столько
Сообщений: 1994
ёёёёё
А код твой как на целевую машину попадет? :)
+ Это длинная история
Код попадает накатом админскими средствами на компьютеры пользователей. Процесс выпуска новой версии у нас слишком сложен. Если при этом мне ещё придётся делать и выпускать какой-то инсталлятор для софта третьих лиц - это отдельная боль. Поэтому я сейчас делаю всё так, чтобы никаких сторонних инсталляций не требовалось.
У нас вот недавно у одного старого, но чрезвычайно нужного приложения поменялся список импортируемых функций, и это всё устанавливалось инсталлятором, который не менялся уже лет 10 и его исходники благополучно утеряны, и это обернулось чередой проблем и недоразумений в процессе тестов и внедрения.
10 фев 20, 07:12    [22076493]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / C++ Ответить