Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: 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.