Работа с базой данных SQL

 

Ребят, вопрос, как работать с базой данных?

Буду благодарен за несколько примеров.

Цель хранить большое количество текстовой информации и чисел типа double.

Поиск текста и чисел.

 

Основная информация по работе с таблицами в статье  :  https://www.mql5.com/ru/articles/7463  

SQLite: нативная работа с базами данных на SQL в MQL5
SQLite: нативная работа с базами данных на SQL в MQL5
  • www.mql5.com
Разработка торговых стратегий связана с обработкой больших объемов данных. Теперь прямо в MQL5 вы можете работать с базами данных с помощью SQL-запросов на основе SQLite. Важным преимуществом данного движка является то, что вся база данных содержится в единственном файле, который находится на компьютере пользователя.
 

не проще ли работать с файлами?

есть csv, txt, бинарники.

примеры работы с файлами в кодобазе точно есть.

и справке все достаточно не плохо


Большое это сколько?

Чем больше - тем файлы лучше, можно самому нарезать сколько угодно, а если юзать апи - то и в любое место.

 

  Oболочка для  работы с таблицами : https://sqlitebrowser.org/dl/  

 
//+------------------------------------------------------------------+
//    В МЕСТЕ СОЗДАНИЯ СИГНАЛА, ФУНКЦИЯ ЗАПИШЕТ ДАННЫЕ О СИГНАЛЕ В ТАБЛИЦУ
//+------------------------------------------------------------------+
void CT001(ENUM_TIMEFRAMES TF, datetime Time_Signal, double Price_Signal, string Name_Signal)
  {
   string filename="ALL_LINES.sqlite";
//--- создадим или откроем базу данных в общей папке терминалов
   int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);
   if(db==INVALID_HANDLE)
     {
      Print("DB: ", filename, " open failed with code ", GetLastError());
     }
//--- создаем таблицу
   if(!DatabaseTableExists(db, "TEMP_002"))
     {
      if(!DatabaseExecute(db, "CREATE TABLE TEMP_002 ("
                          "TF_SIG   CHAR(12) ,"       //---
                          "TM_SIG   INT      ,"       //---
                          "PR_SIG   REAL,"       //---
                          "NM_SIG   CHAR(5)                 );")
        )
        {
         Print("DB: ", filename, " create table failed with code ", GetLastError());
        }// end if databaseExecute
     }// end if if not exist table
//+------------------------------------------------------------------+
   DatabaseExecute(db, "INSERT INTO TEMP_002 (TF_SIG, TM_SIG, PR_SIG, NM_SIG ) VALUES ( '"  + EnumToString(TF) +"'," +
                   (int)Time_Signal
                   +"," +
                   Price_Signal
                   +","
                   + "'"  + Name_Signal +"'"
                   +");");
//+------------------------------------------------------------------+
   DatabaseClose(db);
  }// end function
//+------------------------------------------------------------------+
//|   
//+------------------------------------------------------------------+

 
Vladimir Pastushak:

Ребят, вопрос, как работать с базой данных?

Буду благодарен за несколько примеров.

Цель хранить большое количество текстовой информации и чисел типа double.

Поиск текста и чисел.

Штатными средствами вы можете работать только с sqlite. Работа с иными базами возможна только через dll прокладку.

 
DrSky #:

Штатными средствами вы можете работать только с sqlite. Работа с иными базами возможна только через dll прокладку.

или через WebRequest, если у базы есть REST-API (их в мире не одна)

 
DrSky #:

Штатными средствами вы можете работать только с sqlite. Работа с иными базами возможна только через dll прокладку.

Зачем dll, если есть сокеты?
Документация по MQL5: Сетевые функции / SocketCreate
Документация по MQL5: Сетевые функции / SocketCreate
  • www.mql5.com
SocketCreate - Сетевые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Причина обращения: