03 августа 2023

Поддержка QBE в Delphi 12

    В 1970-х годах исследовательский центр компании IBM предложил новый способ создания запросов к базе данных – QBE (Query by Example). Он подразумевает ввод конечным пользователем информационной системы образцов значений полей в виде текстовой строки, которые потом преобразуются в стандартный запрос к базе данных. Это позволяет простому пользователю делать сложные запросы без необходимости изучать специализированный язык запросов (например, SQL), синтаксис которого может быть недоступен ему для понимания. Разработчики Delphi 12 добавили поддержку QBE в FireDAC.

    Поддержка QBE в Delphi 12 реализована при помощи нового компонента TFDQBE. Работа с ним состоит из трех шагов:

  1. Вызов метода FDQBE.Edit, который создает в памяти DataSet с набором полей как у основного DataSet (только все его поля имеют тип ftString).
  2. Заполнение пользователем созданного в памяти DataSet критериями фильтрации (например, через db-aware контролы или DBGrid).
  3. Вызов метода FDQBE.Post, который на основе внесенных пользователем критериев фильтрации изменяет условие исходного запроса FDQuery или его свойство Filter (в зависимости от свойства FDQBF.Language).
DataSet связанный с TFDQBE может быть активным или неактивным. Главное, чтобы в него были добавлены поля. При заполнении критериев фильтрации не требуется использование имен полей и некоторых операторов. Например, для фильтрации по условию "OrderID < 10255" следует писать "< 10255", для условия равенства "OrderID = 10255" – просто "10255", для like – "1025%" и т. д.

2 комментария:

  1. Блин, ощущение, что в акракадабре собирают ТОП-10 бесполезных фич и реализуют их в ближайших релизах. Где расширение функционала TDBGrid, где поддержка HTML-тэгов в стандартных контролах хотяб на уровне BBC? Где приближенное к HTML размещение компонентов? Да элементарная установка пакетов, чтоб не надо было прописывать пути для X86 и x64 библиотек!!! Где диалоговые окна современные?
    Например, для фильтрации по условию "OrderID < 10255" следует писать "< 10255" - вы серьезно???? Это то, что нужно большинству девелоперов?

    ОтветитьУдалить