Обсуждение статьи "Упрощение работы с базами данных в MQL5 (Часть 2): Создание сущностей с помощью метапрограммирования"
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Упрощение работы с базами данных в MQL5 (Часть 2): Создание сущностей с помощью метапрограммирования:
В предыдущей статье мы сделали первые шаги к пониманию того, как MQL5 обрабатывает базы данных: мы создавали таблицы, вставляли, обновляли и удаляли записи и даже изучали возможности транзакций, импорта и экспорта данных. Все это было сделано напрямую, путем написания чистого SQL и вызова нативных функций, предлагаемых языком. Этот шаг был решающим, поскольку он заложил фундамент, на котором будет построен любой уровень абстракции. Но теперь возникает неизбежный вопрос: действительно ли мы хотим писать SQL каждый раз, когда нужно работать с данными в наших роботах и индикаторах?
Если мы рассматриваем более надежную систему, то ответ будет отрицательным. Работа исключительно с SQL делает код многословным, повторяющимся и подверженным ошибкам, особенно по мере того, как приложение растет и начинает обрабатывать множество таблиц, связей и проверок. Вот тут-то и появляется ORM (Object-Relational Mapping, объектно-реляционное отображение): способ преодолеть разрыв между объектно-ориентированным миром, в котором мы программируем, и реляционным миром, в котором существуют данные. Первым шагом в этом направлении является создание способа представления таблиц базы данных непосредственно в виде классов в MQL5.
В этой второй статье мы узнаем, как использовать часто недооцениваемую, но чрезвычайно мощную языковую функцию: #define. Это позволит нам автоматизировать и стандартизировать создание структур, избегая дублирования и упрощая дальнейшее расширение. С его помощью мы создадим наши первые сущности (классы, представляющие таблицы), а также механизм для описания метаданных столбцов, таких как тип данных, первичный ключ, автоинкремент, обязательные поля и значения по умолчанию.
Этот подход станет основой для всего последующего: репозиториев, построителей запросов и автоматического создания таблиц. Другими словами, мы начинаем формировать ORM на MQL5, который мы задумывали с самого начала.
Автор: joaopedrodev