Дата публикации: 25.01.2023

Работа с IBProvider через LcpiComApiProvider (C#, FB)

Демонстрация работы с IBProvider через lcpi.lib.com.ComApiProvider. В качестве реализации «LCPI COM API» используется «LCPI Easy COM».

Вы можете найти готовый проект в дистрибутиве «LCPI ADO.NET Provider for OLE DB» в каталоге «c:\Program Files (x86)\LCPI\OleDb.NET\[provider version]\Samples\Collection_001\Sample_0031__UsingLcpiComApi».

Так же рекоммендуется прочитать статью «IBProvider and LCPI COM API».

Конфигурационный файл для 32-битных процессов:

<!--

     LCPI Easy COM Settings [32bit].

     It is a sample which defines LcpiEasyCom settings for using:
      - LCPI.IBProvider.5
      - LCPI.IBProvider.5.Free
      - LCPI.IBProvider.5.Private.vc17.release
      - LCPI.IBProvider.5.Private.vc17.debug
      - LCPI.OleDbServices.DataInitManager.Global.1
      - LCPI.OleDbServices.DataInitManager.Local.1
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug
      - MSDASC.MSDAINITIALIZE.1

     Additional aliases:
      - LCPI.IBProvider
      - LCPI.OleDbServices.DataInitManager.Global
      - LCPI.OleDbServices.DataInitManager.Local
      - MSDASC.MSDAINITIALIZE

     There
      - "MSDAINITIALIZE" is mapped with "LCPI OLE DB Services".

     It is expected that the binaries of these components are presented at the same folder with this settings-file:
      - lcpi.ibprovider-v5_vc17_w32_prof_i.dll
      - lcpi.ibprovider-v5_vc17_w32_prof_d.dll
      - lcpi.ibprovider-v5_vc17_w32_free_i.dll
      - lcpi.oledb_services-v1_vc17_w32_prof_i.dll
      - lcpi.oledb_services-v1_vc17_w32_prof_d.dll

     You can adapt this file for your project.

-->

<ECM Version="1.0">
 <Registry>
  <Key Name="HKCR">
   <!-- ++++++++++++++++++++++++++ CLSIDs ++++++++++++++++++++++++++++++++ -->

   <Key Name="CLSID">

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A0-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Error Lookup [v5]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5</Key>

     <Key Name="VersionIndependentProgID">LCPI.IBProvider</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AC-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5.Free</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Lookup [v5][Free]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_free_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Free</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{4954F76F-5620-4B90-BE4D-61EC6940B803}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.release</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{550141E6-CDA8-4210-B7EB-7F7D9D9C4EF6}">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{9D75E160-94FB-4540-B117-3D68C45919C4}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.debug</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{6B4BA676-3EE1-4C44-8EF9-A29B27890DB8}">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5][Free]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_freee_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{550141E6-CDA8-4210-B7EB-7F7D9D9C4EF6}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{6B4BA676-3EE1-4C44-8EF9-A29B27890DB8}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB6-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Global.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Global.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Global</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB8-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Local</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{2206CDB0-19C1-11D1-89E0-00C04FD7A829}">
     <Value Name="">MSDASC.MSDAINITIALIZE.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">MSDASC.MSDAINITIALIZE.1</Key>

     <Key Name="VersionIndependentProgID">MSDASC.MSDAINITIALIZE</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{CCB4EC60-B9DC-11D1-AC80-00A0C9034873}">
     <Value Name="">MSDASC.PDPO.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{4888EE9F-A34B-4870-A731-D26A1FB2B24E}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{CF3EB002-4D77-49B0-8C6B-695B692CE958}">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{FF8BDE90-4FAE-4AE8-A618-C781C89982B7}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{55CEEA41-B34E-4F09-A4B4-C8057DCBF13A}">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{CF3EB002-4D77-49B0-8C6B-695B692CE958}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- PRIVATE -->
    <Key Name="{55CEEA41-B34E-4F09-A4B4-C8057DCBF13A}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w32_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

   </Key> <!-- /CLSID -->

   <!-- +++++++++++++++++++++++++ PROG IDs +++++++++++++++++++++++++++++++ -->

   <Key Name="LCPI.IBProvider.5">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CLSID">{769A12A0-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CurVer">LCPI.IBProvider.5</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Free">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5][Free]</Value>
    <Key Name="CLSID">{769A12AC-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.release">
    <Key Name="CLSID">{4954F76F-5620-4B90-BE4D-61EC6940B803}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.debug">
    <Key Name="CLSID">{9D75E160-94FB-4540-B117-3D68C45919C4}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CLSID">{40AD5FB6-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Global.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CLSID">{40AD5FB8-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Local.1</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CLSID">{2206CDB0-19C1-11D1-89E0-00C04FD7A829}</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CurVer">MSDASC.MSDAINITIALIZE.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release">
    <Key Name="CLSID">{4888EE9F-A34B-4870-A731-D26A1FB2B24E}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug">
    <Key Name="CLSID">{FF8BDE90-4FAE-4AE8-A618-C781C89982B7}</Key>
   </Key>

   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  </Key>
 </Registry>
</ECM>

Конфигурационный файл для 64-битных процессов:

<!--

     LCPI Easy COM Settings [64bit].

     It is a sample which defines LcpiEasyCom settings for using:
      - LCPI.IBProvider.5
      - LCPI.IBProvider.5.Free
      - LCPI.IBProvider.5.Private.vc17.release
      - LCPI.IBProvider.5.Private.vc17.debug
      - LCPI.OleDbServices.DataInitManager.Global.1
      - LCPI.OleDbServices.DataInitManager.Local.1
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release
      - LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug
      - MSDASC.MSDAINITIALIZE.1

     Additional aliases:
      - LCPI.IBProvider
      - LCPI.OleDbServices.DataInitManager.Global
      - LCPI.OleDbServices.DataInitManager.Local
      - MSDASC.MSDAINITIALIZE

     There
      - "MSDAINITIALIZE" is mapped with "LCPI OLE DB Services".

     It is expected that the binaries of these components are presented at the same folder with this settings-file:
      - lcpi.ibprovider-v5_vc17_w64_prof_i.dll
      - lcpi.ibprovider-v5_vc17_w64_prof_d.dll
      - lcpi.ibprovider-v5_vc17_w64_free_i.dll
      - lcpi.oledb_services-v1_vc17_w64_prof_i.dll
      - lcpi.oledb_services-v1_vc17_w64_prof_d.dll

     You can adapt this file for your project.

-->

<ECM Version="1.0">
 <Registry>
  <Key Name="HKCR">
   <!-- ++++++++++++++++++++++++++ CLSIDs ++++++++++++++++++++++++++++++++ -->

   <Key Name="CLSID">

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A0-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Error Lookup [v5]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5</Key>

     <Key Name="VersionIndependentProgID">LCPI.IBProvider</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AC-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider.5.Free</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">LCPI.IBProvider Lookup [v5][Free]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_free_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Free</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{B1F5221E-6135-490B-8FD8-7BB8A1EBB775}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.release</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{A8E8B9E6-F7C4-4126-B572-0C675A4BB9DE}">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{EE5D1409-7217-4F6A-83AD-8A865DC2BA3C}">
     <Value Name="">LCPI.IBProvider.5.Private.vc17.debug</Value>

     <Value Name="OLE DB Services" Type="ui4">0xFFFFFFFF</Value>

     <Value Name="flush_log_period" Type="ui4">0</Value>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{EC1206D8-0C97-4C72-B84B-B8E92406126D}">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Key>
     </Key>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ProgID">LCPI.IBProvider.5.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12A1-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{769A12AD-04BF-11D8-AE8B-00A0C907DB93}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5][Free]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_freee_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{A8E8B9E6-F7C4-4126-B572-0C675A4BB9DE}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{EC1206D8-0C97-4C72-B84B-B8E92406126D}">
     <Value Name="">LCPI.IBProvider Error Lookup [v5] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.ibprovider-v5_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB6-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Global.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Global.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Global</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB8-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1</Key>

     <Key Name="VersionIndependentProgID">LCPI.OleDbServices.DataInitManager.Local</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{2206CDB0-19C1-11D1-89E0-00C04FD7A829}">
     <Value Name="">MSDASC.MSDAINITIALIZE.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>

     <Key Name="ProgID">MSDASC.MSDAINITIALIZE.1</Key>

     <Key Name="VersionIndependentProgID">MSDASC.MSDAINITIALIZE</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{CCB4EC60-B9DC-11D1-AC80-00A0C9034873}">
     <Value Name="">MSDASC.PDPO.1 [LCPI]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">LCPI OLE DB Services Error Lookup [v1]</Key>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{44F98904-F10D-45B2-B5FF-1A17D79EAF1F}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{7DF6AC82-7A5E-4058-87E5-A91D67B0636B}">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{420CE6F3-F255-441D-BFCE-C5451D4C7607}">
     <Value Name="">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>

     <Key Name="ExtendedErrors">
      <Value Name="">Extended Error Service</Value>
      <Key Name="{40A90C63-D3F4-4060-8A53-9D2D5EFAE0CE}">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Key>
     </Key>

     <Key Name="ProgID">LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug</Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <Key Name="{40AD5FB5-0804-11E7-964E-2C56DC394BFA}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

    <!-- PRIVATE -->
    <Key Name="{7DF6AC82-7A5E-4058-87E5-A91D67B0636B}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Release]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_i.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- PRIVATE -->
    <Key Name="{40A90C63-D3F4-4060-8A53-9D2D5EFAE0CE}">
     <Value Name="">LCPI OLE DB Services Error Lookup [v1] [Private.Debug]</Value>

     <Key Name="InprocServer32">
      <Value Name="">lcpi.oledb_services-v1_vc17_w64_prof_d.dll</Value>
      <Value Name="ThreadingModel">Free</Value>
     </Key>
    </Key>

    <!-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -->

   </Key> <!-- /CLSID -->

   <!-- +++++++++++++++++++++++++ PROG IDs +++++++++++++++++++++++++++++++ -->

   <Key Name="LCPI.IBProvider.5">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CLSID">{769A12A0-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5]</Value>
    <Key Name="CurVer">LCPI.IBProvider.5</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Free">
    <Value Name="">LCPI OLE DB Provider for InterBase [v5][Free]</Value>
    <Key Name="CLSID">{769A12AC-04BF-11D8-AE8B-00A0C907DB93}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.release">
    <Key Name="CLSID">{B1F5221E-6135-490B-8FD8-7BB8A1EBB775}</Key>
   </Key>

   <Key Name="LCPI.IBProvider.5.Private.vc17.debug">
    <Key Name="CLSID">{EE5D1409-7217-4F6A-83AD-8A865DC2BA3C}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CLSID">{40AD5FB6-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Global">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Global].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Global.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CLSID">{40AD5FB8-0804-11E7-964E-2C56DC394BFA}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [Local].</Value>
    <Key Name="CurVer">LCPI.OleDbServices.DataInitManager.Local.1</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE.1">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CLSID">{2206CDB0-19C1-11D1-89E0-00C04FD7A829}</Key>
   </Key>

   <Key Name="MSDASC.MSDAINITIALIZE">
    <Value Name="">LCPI OLE DB Services. Connection Initializer [MSDAINITIALIZE].</Value>
    <Key Name="CurVer">MSDASC.MSDAINITIALIZE.1</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.release">
    <Key Name="CLSID">{44F98904-F10D-45B2-B5FF-1A17D79EAF1F}</Key>
   </Key>

   <Key Name="LCPI.OleDbServices.DataInitManager.Local.1.Private.vc17.debug">
    <Key Name="CLSID">{420CE6F3-F255-441D-BFCE-C5451D4C7607}</Key>
   </Key>

   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  </Key>
 </Registry>
</ECM>

Исходный код примера:

////////////////////////////////////////////////////////////////////////////////
//Samples for LCPI ADO.NET Data provider for OLEDB.
//                                                    ibprovider.com. 19.01.2023
using System;
using System.Threading;
using lcpi.data.oledb;

namespace Sample_0031{
////////////////////////////////////////////////////////////////////////////////
//class Program

class Program
{
 //
 // Valid identifiers:
 //  - LCPI.IBProvider                        [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5                      [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5.Free                 [lcpi.ibprovider-v5_vc17_wXX_free_i.dll]
 //  - LCPI.IBProvider.5.Private.vc17.release [lcpi.ibprovider-v5_vc17_wXX_prof_i.dll]
 //  - LCPI.IBProvider.5.Private.vc17.debug   [lcpi.ibprovider-v5_vc17_wXX_prof_d.dll]
 //
 private const string c_cn_str
  ="provider=LCPI.IBProvider.5;"
  +"location=inet4://localhost/d:\\database\\fb_03_0_0\\employee.fdb;"
  +"dbclient_type=fb.direct;"
  +"user id=SYSDBA;"
  +"password=masterkey;";

 //----------------------------------------------------------------------
 static int Main(string[] args)
 {
  int resultCode=0;

  try // [catch]
  {
   string comApiProviderDir
    =Helper__GetRootDirOfLcpiComApiProvider();

   //Console.WriteLine("comApiProviderDir: [{0}]",comApiProviderDir);

   //-----------------
   Console.WriteLine("Creating comApiProvider ...");

   //
   // Attention: this object will provide COM infrastructure!
   //
   lcpi.lib.com.IComApiProvider
    comApiProvider
     =new lcpi.lib.com.LcpiComApiProvider
       (comApiProviderDir);

   //-----------------
   OleDbServices    oledbServices=null;
   OleDbConnection  cn=null;
   OleDbTransaction tr=null;
   OleDbCommand     cmd=null;

   try // [finally]
   {
    Console.WriteLine("Creating LCPI OLE DB Services ...");

    oledbServices
     =OleDbServices.CreateWithComApiProvider
       (comApiProvider);

    //-----------------
    Console.WriteLine("Creating a connection ...");

    cn=oledbServices.CreateConnection(c_cn_str);

    //-----------------
    Console.WriteLine("Openning a connection ...");

    cn.Open();

    //-----------------
    Console.WriteLine("Starting a transaction ...");

    tr=cn.BeginTransaction();

    //-----------------
    Console.WriteLine("Executing a command ...");

    cmd=new OleDbCommand("select COUNT(*) from employee",cn,tr);

    var cEmployees=cmd.ExecuteScalar();

    Console.WriteLine("The count of employees: {0}",cEmployees);

    //-----------------
    Console.WriteLine("Committing ...");

    tr.Commit();
   }
   finally
   {
    lcpi.lib.structure.DisposeUtils.Exec(cmd);
    lcpi.lib.structure.DisposeUtils.Exec(tr);
    lcpi.lib.structure.DisposeUtils.Exec(cn);
    lcpi.lib.structure.DisposeUtils.Exec(oledbServices);
   }//finally
  }
  catch(Exception e)
  {
   //Note: exception can holds a pointer with COM-object

   resultCode=1;

   Console.WriteLine("");
   Console.WriteLine("ERROR: {0} - {1}",e.Source,e.Message);
  }//catch

  return resultCode;
 }//Main

 //Helper interface ------------------------------------------------------
 private static string Helper__GetRootDirOfLcpiComApiProvider()
 {
  var asmPath
   =System.Reflection.Assembly.GetExecutingAssembly().Location;

  var curAsmDir
   =System.IO.Path.GetDirectoryName(asmPath);

  switch(IntPtr.Size)
  {
   case 4:
    return System.IO.Path.Combine(curAsmDir,"private-w32");

   case 8:
    return System.IO.Path.Combine(curAsmDir,"private-w64");

   default:
    throw new ApplicationException("Unexpected IntPtr.Size!");
  }//switch
 }//Helper__GetRootDirOfLcpiComApiProvider
}//class Program

////////////////////////////////////////////////////////////////////////////////
}//namespace Sample_0031


Output of sample.
Вывод.