Мельница данных  (20.02.2020)
Интерфейс IInfoProvider
Провайдер реализует интерфейс
  IInfoProvider = interface(IUnknown)
    ['{64F8072B-7250-4C57-BA8E-D018C7B72CC7}']
    function Get_TableCount: Integer; safecall;
    function Get_Table(Index: Integer): ITableInfo; safecall;
    function Perform(const SQL: WideString): IDataSet; safecall;
    procedure Connect(const DataBase: WideString; 
      const UserName: WideString; 
      const Password: WideString); safecall;
    function Get_CLSID: TGUID; safecall;
    function Get_DateLiteral: WideString; safecall;
    function Get_TimeLiteral: WideString; safecall;
    function Get_DateTimeLiteral: WideString; safecall;
  end; 
  • функция Get_CLSID возвращает GUID класса-провайдера.
  • процедура Connect осуществляет соединение с БД.
  • функция Get_TableCount возвращает количество таблиц, доступ к которым предоставляется провайдером.
  • функция Get_Table возвращает ссылку на информацию о таблице с номером Index. Ссылка на интерфейс ITableInfo или интерфейс ITableInfo2
  • функция Perform принимает текст сформированного SQL-запроса и возвращает ссылку на набор данных. Набор данных реализует интерфейс IDataSet.
  • функция Get_DateLiteral возвращает строку, определяющую способ включения в запрос литерала типа "Дата".
  • функция Get_TimeLiteral возвращает строку, определяющую способ включения в запрос литерала типа "Время".
  • функция Get_DateTimeLiteralвозвращает строку, определяющую способ включения в запрос литерала типа "Дата со временем".