Доступ к Firebird и Interbase без установки дополнительных компонентов в операционной системе актуален для:
- WEB-приложений на внешнем хостинге.
- Portable-приложений в связке с Firebird Embedded.
- Приложений, работающих с базой данных на компьютере с ограниченными правами пользователя.
Манифест - альтернатива регистрации компонента в реестре
Манифест(manifest) - это файл XML, описывающий клиентское приложение и библиотеки, необходимые для его работы.
Манифест может храниться как в ресурсах приложения, так и на диске, рядом с исполняемым модулем программы.
Во втором случае для того, чтобы приложение обнаружило файл манифеста, он должен называться: ИМЯ_ПРОГРАММЫ.exe.manifest.
Возможность работы с манифестами доступна начиная с Windows XP.
Создание файлов манифеста для подключения к Firebird и Interbase
Чтобы клиентское приложение обнаружило незарегистрированный драйвер необходимо:
- Создать файл манифеста клиентского приложения с именем ИМЯ_ПРОГРАММЫ.exe.manifest.
- В нем указать ссылку на файл манифеста IBProvider без расширения .manifest.
- Создать файл манифеста IBProvider (v1, v2 или v3).
- В манифесте IBProvider указать соответствующие CLSID и ProgID из таблицы 1.
| Драйвер |
Текущая версия |
Имя файла драйвера |
Имя файла манифеста |
progID |
clsID |
| IBProvider v1 |
1.9.23.3024 |
_IBProvider.dll |
_IBProvider.dll.manifest |
LCPI.IBProvider.1 |
{1352C0F0-DED2-11D3-A7AC-00A0C907DB93} |
| _IBProvider_i.dll |
_IBProvider_i.dll.manifest |
| IBProvider v2 |
2.6.17.3024 |
_IBProvider_v2.dll |
_IBProvider_v2.dll.manifest |
LCPI.IBProvider.2 |
{3439B9D5-23B6-4661-9F0C-5CD74B1C66CB} |
| _IBProvider_v2_i.dll |
_IBProvider_v2_i.dll.manifest |
| IBProvider v3 |
3.0.0.8628 RC4 |
_IBProvider_v3_i.dll |
_IBProvider_x3_i.dll.manifest |
LCPI.IBProvider.3 |
{769A1280-04BF-11D8-AE8B-00A0C907DB93} |
| _IBProvider_x3_w64_i.dll |
_IBProvider_x3_w64_i.dll.manifest |
Пример файла манифеста клиентского приложения под .Net Framework ИМЯ_ПРОГРАММЫ.exe.manifest, использущего IBProvider v3 (32bit):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="ИМЯ_ПРОГРАММЫ_БЕЗ_РАСШИРЕНИЯ" version="1.0.0.0" processorArchitecture="msil"></assemblyIdentity>
<dependency>
<dependentAssembly>
<assemblyIdentity name="_IBProvider_x3_i.dll" version="3.0.0.8628"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Пример файла манифеста _IBProvider_x3_i.dll.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<file name = "_IBProvider_x3_i.dll">
<comClass progid="LCPI.IBProvider.3 " clsid="{769A1280-04BF-11D8-AE8B-00A0C907DB93}" threadingModel = "Apartment" />
</file>
</assembly>
Дополнительные модули для работы провайдера IBProvider v3
Для работы IBProvider v3 требуется Microsoft Visual C++ 2005 SP1 Redistributable Package 32-х битной или 64-х битной версии, в зависимости от разрядности операционной системы.
Microsoft Visual C++ 2005 SP1 Redistributable Package содержит три файла:
- msvcp80.dll
- msvcr80.dll
- Microsoft.VC80.CRT.manifest
Файлы можно взять из дистрибутива IBProvider Professional или скачать с сайта ibprovider.
Дополнительные модули для работы провайдеров IBProvider v2 и IBProvider v1
Для функционирования IBProvider v2 и IBProvider v1 на компьютер клиента необходимо скопировать библиотеку cc3250mt.dll.
Её так же можно скачать с сайта ibprovider.
Можно ли работать c IBProvider без регистрации на Windows Vista?
Предоложенное решение не работает на Windows Vista. О том, как настройть свое приложение для работы с IBProvider без регистрации под Висту, рассказано на нашем форуме поддержки.
Полезные ссылки
Теги статьи: Firebird, Interbase, web, portable applications, firebird embedded, asp, .net, odbc driver, ole db provider,
Firebird oledb provider,
Firebird ODBC driver,
Interbase ODBC driver,
Interbase Delphi
,
Firebird Delphi
|