Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server 2019 (15.x) и более поздних версий
Узнайте, как реализовать программу C# для SQL Server с помощью пакета SDK расширяемости Майкрософт для .NET. Пакет SDK — это интерфейс расширения языка .NET, который используется для обмена данными с SQL Server и выполнения кода C# из SQL Server.
Это открытый код, который можно найти в репозитории расширений языка SQL Server в GitHub.
Требования к реализации
Интерфейс ПАКЕТА SDK определяет набор требований, необходимых для взаимодействия SQL Server с средой выполнения .NET. Чтобы использовать пакет SDK, необходимо выполнить некоторые правила реализации в основном классе. ЗАТЕМ SQL Server может выполнять определенный метод в C# и обмениваться данными с помощью расширения языка .NET.
Пример использования пакета SDK см. в руководстве по поиску строки с помощью регулярных выражений (regex) в C#.
Классы SDK
Пакет SDK состоит из нескольких классов.
Абстрактный класс
AbstractSqlServerExtensionExecutorопределяет интерфейс, который использует расширение .NET для обмена данными с SQL Server.Несколько вспомогательных классов реализуют
CSharpDataSetобъект набора данных.
В следующем разделе описаны описания каждого класса в пакете SDK. Исходный код классов в пакете SDK доступен в репозитории расширений языка SQL Server в GitHub.
Класс: AbstractSqlServerExtensionExecutor
Абстрактный класс AbstractSqlServerExtensionExecutor содержит интерфейс, используемый для выполнения кода C# расширением языка .NET для SQL Server.
Основной класс C# должен наследоваться от этого класса. Наследование этому классу означает наличие в классе определенных методов, которые должны быть реализованы в вашем собственном классе.
Чтобы наследовать от этого абстрактного класса, вы расширяете имя абстрактного класса в объявлении класса, где MyClass имя класса:
public class MyClass : AbstractSqlServerExtensionExecutor {}
Как минимум, основной класс должен реализовать Execute(...) метод.
Метод Execute
Метод Execute — это метод, который вызывается из SQL Server через расширение языка .NET, чтобы вызвать код C# из SQL Server. Это ключевой метод, в котором вы включаете основные операции, которые вы хотите выполнить из SQL Server.
Чтобы передать аргументы метода в C# из SQL Server, используйте @param параметр в sp_execute_external_script. Метод Execute принимает его аргументы таким образом.
public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);
Метод Init
Метод Init выполняется после конструктора и перед методом Execute . Все операции, которые необходимо выполнить перед Execute выполнением этого метода.
public virtual void Init(string sessionId, int taskId, int numTasks);
Класс: CSharpExtension
Класс реализует все API расширений языка и возвращает результаты собственному узлу CSharpExtension .
Класс: CSharpDataSet
Абстрактный класс CSharpDataSet содержит интерфейс для обработки входных и выходных данных, используемых расширением .NET.