Skip to content

Commit 091501b

Browse files
committed
Update README.md
1 parent 2abc939 commit 091501b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,24 @@ void build(sets::Builder& b) {
206206
}
207207
```
208208

209+
### Несколько БД
210+
Можно использовать несколько баз данных, например одна для сохраняемых в память настроек, вторая для "временных" настроек, которые не нужно сохранять при перезагрузке: `GyverDBFile` сохраняет в файл, а обычная `GyverDB` - нет, живёт чисто в оперативной памяти. Переключаться между БД нужно в билдере таким образом, чтобы после смены БД шли только виджеты с ключами из этой БД. Например
211+
212+
```cpp
213+
GyverDBFile db_flash(&LittleFS, "/data.db");
214+
GyverDB db_ram;
215+
216+
void build(sets::Builder& b) {
217+
settings.attachDB(&db_ram);
218+
b.Input("input2"_h, "...");
219+
220+
settings.attachDB(&db_flash);
221+
b.Input("input1"_h, "...");
222+
}
223+
```
224+
225+
> После выхода из билдера нужно оставлять подключенной ту БД, для которой нужны автоматические обновления, система не сможет обновляться одновременно с нескольких БД. Также нужно оставлять последней подключенной БД, которая пишет на флешку, чтобы система автоматически вызывала её тикер.
226+
209227
### Контейнеры
210228
Виджеты можно объединять в контейнеры. Контейнер нужно начать и закончить, так как пакет данных собирается линейно в целях оптимизации скорости и памяти. Метод `beginКонтейнер` всегда вернёт true для красоты организации кода в блоке условия:
211229
```cpp

0 commit comments

Comments
 (0)