Ознаки
Якщо запустити стороннє зовнішнє розширення мови, яке залежить від іншої спільної бібліотеки, може з'явитися повідомлення про помилку.
Помилка: "Бібліотеку не знайдено"
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Спосіб усунення проблеми
Цю проблему вирішено в такому сукупному оновленні для SQL Server:
Відомості про сукупні оновлення для SQL ServerSQL Server :
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.
Спосіб вирішення
Для Windows:
Щоб вирішити цю проблему, потрібно явно додати один із таких варіантів:
- шлях до бібліотек залежностей, якщо ZIP розширення мови не містить бібліотеку залежностей АБО
- каталоги мов і розширень Якщо zip-папка мовного розширення містить бібліотеку залежностей на додаток до самого розширення
до системної змінної середовища PATH, щоб можна було знайти бібліотеки залежностей.
Наприклад:
Сценарій 1.
- У вас є мовне розширення з бібліотекою залежностей у розташуванні: C:\\Users\\admin\\Documents\\dependency.dll.
- Tlanguage-extension.zip містить лише languageExtension.dll.
- Потім переконайтеся, що шлях до залежності додано до змінної середовища PATH системи. Наприклад, C:\\Users\\admin\\Documents.
СТВОРЕННЯ ЗОВНІШНЬОЇ МОВИ [mylanguage]
FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll')
GO
Сценарій 2.
- Якщо language-extension.zip містить розширення languageExtension.dll і його бібліотеку залежностей – dependency.dll, спочатку знайдіть наступний ідентифікатор мови, починаючи з 65536. Для цього запустіть наступне подання каталогу у відповідній базі даних і додайте 1 до найвищого встановленого ідентифікатора мови, більшого за 65536. Наприклад, для головної бази даних: "SELECT * FROM master.sys.external_languages".
- Згенеруйте шлях до каталогу мов, замінивши ім'я екземпляра, database_id та next_language_id на такий шлях: C:\\Program Files\\Microsoft SQL Server\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\\<database_id>\\next< language id>.
- Потім створіть зовнішню мову, як описано нижче.
СТВОРЕННЯ ЗОВНІШНЬОЇ МОВИ [mylanguage]
FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll',
ENVIRONMENT_VARIABLES = N'{"PATH":"C:\\ProgramFiles\\Microsoft SQLServer\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\1\\65536"}');
GO
For LinuxLinux:
Виправлення немає, і вам завжди слід додавати ${ORIGIN} до параметра linker rpath під час компіляції розширень.
Наприклад: set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath,'${ORIGIN}'")
Посилання
Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення.