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.