Назад |
Перейти на главную страницу
32-разрядная DLL на SQL Server 2008 x64
Можно ли запустить 32-разрядную DLL на сервере SQL Server 2008 x64? Мне нужно использовать DLL внутри хранимой процедуры.
Спасибо
64-битный SQL Server может вызывать только 64-битные библиотеки DLL.
Вот краткое перечисление некоторых возможных решений, каждое со своими недостатками / недостатками, в произвольном порядке:
- Вы могли бы попробовать этот, но я не могу за это поручиться. Это похоже на взлом, и я бы не стал его пробовать, если бы не отчаялся.
- Поговорите с поставщиком и посмотрите, есть ли 64-битная версия DLL. (На всякий случай: вам (вероятно) понадобится 64-битная версия x86. 64-битная версия Itanium не подойдет.)
- Перекомпилируйте DLL как 64-битную DLL.
- Перепишите DLL, используя прямой Transact SQL. (Я сделал это в рамках проекта модернизации / модернизации, но только с некоторыми чрезвычайно упрощенными библиотеками DLL, которые, вероятно, вообще не нуждались в расширении процедур.)
- Перепишите DLL, используя .Net и SQLCLR. (Это лучшее, что можно сделать в долгосрочной перспективе. ИМО.)
- Найдите 32-битный сервер, установите туда DLL и вызовите его с 64-битного сервера через связанный сервер.
- Найдите способ использовать DLL через XP_COMMANDSHELL или шаг задания, или запустите его через какой-либо другой механизм.
Это обычная проблема с устаревшими материалами. Например, (до недавнего времени) существовали только 32-битные версии драйверов ODBC Fox Pro, которые представляют собой просто библиотеки DLL.