Share via


Kit SDK d’extensibilité Microsoft pour C# pour SQL Server

S’applique à : SQL Server 2019 (15.x) et versions ultérieures

Découvrez comment vous pouvez implémenter un programme C# pour SQL Server avec le kit de développement logiciel (SDK) d’extensibilité Microsoft pour .NET. Le kit de développement logiciel (SDK) est une extension de langage .NET, qui permet d’échanger des données avec SQL Server et d’exécuter le code C# à partir de SQL Server.

Le code est open source et se trouve dans le dépôt GitHub des extensions de langage SQL Server.

Exigences d’implémentation

L’interface du kit de développement logiciel (SDK) définit un ensemble d’exigences à remplir pour permettre à SQL Server de communiquer avec le runtime .NET. Pour utiliser le kit SDK, vous devez suivre certaines règles d’implémentation dans votre classe principale. SQL Server peut ensuite exécuter une méthode spécifique dans la classe C# et échanger des données à l’aide de l’extension de langage .NET.

Pour obtenir un exemple d’utilisation du kit SDK, consultez Tutoriel : Rechercher une chaîne à l’aide d’expressions régulières (regex) en C#.

Classes du kit de développement logiciel (SDK)

Le kit de développement logiciel (SDK) comprend plusieurs classes.

  • La classe abstraite AbstractSqlServerExtensionExecutor qui définit l’interface utilisée par l’extension .NET pour échanger des données avec SQL Server.

  • Plusieurs classes d’assistance implémentent l’objet de jeu de données CSharpDataSet.

Dans la section suivante, vous trouverez des descriptions de chaque classe dans le kit de développement logiciel (SDK). Le code source des classes du kit SDK est disponible dans le dépôt GitHub des extensions de langage SQL Server.

Classe : AbstractSqlServerExtensionExecutor

La classe abstraite AbstractSqlServerExtensionExecutor contient l’interface qui permet l’exécution du code C# par l’extension de langage .NET pour SQL Server.

Votre classe C# principale doit hériter de cette classe. Hériter de cette classe signifie que vous devez implémenter certaines méthodes de la classe dans votre propre classe.

Pour hériter de cette classe abstraite, étendez-la à l’aide de son nom de classe abstraite dans la déclaration de classe, où MyClass est le nom de votre classe :

public class MyClass : AbstractSqlServerExtensionExecutor {}

Au minimum, votre classe principale doit implémenter la méthode Execute(...).

Méthode Execute

La méthode Execute est la méthode appelée à partir de SQL Server via l’extension de langage .NET, et qui permet d’appeler du code Java à partir de SQL Server. Il s’agit d’une méthode clé dans laquelle vous incluez les principales opérations à exécuter à partir de SQL Server.

Pour passer des arguments de méthode à C# à partir de SQL Server, utilisez le paramètre @param dans sp_execute_external_script. La méthode Execute accepte ses arguments de cette manière.

public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);

Méthode Init

La méthode Init est exécutée après le constructeur et avant la méthode Execute. Toutes les opérations qui doivent être effectuées avant Execute peuvent l’être avec cette méthode.

public virtual void Init(string sessionId, int taskId, int numTasks);

Classe : CSharpExtension

La classe CSharpExtension implémente toutes les API d’extensions de langage et retourne les résultats à l’hôte natif.

Classe : CSharpDataSet

La classe abstraite CSharpDataSet contient l’interface de gestion des données d’entrée et de sortie utilisées par l’extension .NET.