Вопрос по использование SQLite в экспертах

 

Я так понимаю, кто-то использует SQLite в своих торговых экспертах. Читая документацию по SQLite я не понял одну вещь:

A call to sqlite3_initialize() is an "effective" call if it is the first time sqlite3_initialize() is invoked during the lifetime of the process, or if it is the first time sqlite3_initialize() is invoked following a call to sqlite3_shutdown(). Only an effective call of sqlite3_initialize() does any initialization. All other calls are harmless no-ops.

A call to sqlite3_shutdown() is an "effective" call if it is the first call to sqlite3_shutdown() since the last sqlite3_initialize(). Only an effective call to sqlite3_shutdown() does any deinitialization. All other valid calls to sqlite3_shutdown() are harmless no-ops.

Как я понял, sqlite3_initialize() и sqlite3_shutdown() это инициализация и деинициализация БД, соответственно. Но вот зачем это нужно я даже не вообразил себе. По идее, в базе есть все данные, которые нужно получить, а если нет, то они в процессе запишутся. Тогда для чего инициализировать её? Надеюсь, здесь есть с кем это обсудить. Дальше пока что всё понятно. Понятно, что можно забить не не использовать эти методы, но как-бы опционально понимать надобность или ненадобность, а не просто забить.
 
Там всего 6-7 высокоуровневых команд, которые действительно нужны. Остальное отложите до лучших времен
См доки, где за 5 мин и менее.
 
Viktar Dzemikhau:

Я так понимаю, кто-то использует SQLite в своих торговых экспертах. Читая документацию по SQLite я не понял одну вещь:

Как я понял, sqlite3_initialize() и sqlite3_shutdown() это инициализация и деинициализация БД, соответственно. Но вот зачем это нужно я даже не вообразил себе. По идее, в базе есть все данные, которые нужно получить, а если нет, то они в процессе запишутся. Тогда для чего инициализировать её? Надеюсь, здесь есть с кем это обсудить. Дальше пока что всё понятно. Понятно, что можно забить не не использовать эти методы, но как-бы опционально понимать надобность или ненадобность, а не просто забить.
Судя из описания, если sqlite используется на ос, установленной на компьютере, то эти функции не нужны.
 
Artiom Morochin:
Судя из описания, если sqlite используется на ос, установленной на компьютере, то эти функции не нужны.

Он и не может где-то еще использоваться :) как пишут сами разрабы, Think of SQLite not as a replacement for Oracle but as a replacement for fopen().

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

 

SQLite действительно очень шустрая и компактная БД. К ней есть не менее замечательная оболочка-СУБД SQLite Studio.

Другая отличительная черта от настольных БД - ее можно журналировать, что не раз спасало мои БД от жестких перезагрузок компа.

Сам я движок к SQLite писал на C#, ничего сложного. В случае с MQL5, нужно движок сделать в виде библиотеки dll, и вызывать ее средствами языка.

 
Rashit Ibatullin:

SQLite действительно очень шустрая и компактная БД. К ней есть не менее замечательная оболочка-СУБД SQLite Studio.

Другая отличительная черта от настольных БД - ее можно журналировать, что не раз спасало мои БД от жестких перезагрузок компа.

Сам я движок к SQLite писал на C#, ничего сложного. В случае с MQL5, нужно движок сделать в виде библиотеки dll, и вызывать ее средствами языка.

Мне тоже кажется, что проще сделать связь SQLite с терминалом через свою ДЛЛ, чем импортировать SQLite dll непосредственно в терминал.