Megosztás a következőn keresztül:


Microsoft Extensibility SDK for C# for SQL Server

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók

Megtudhatja, hogyan implementálhat C# programot az SQL Serverhez a Microsoft Bővíthetőségi SDK for .NET használatával. Az SDK egy interfész a .NET nyelvi bővítményhez, amely az SQL Serverrel való adatcserére és az SQL Serverről származó C#-kód végrehajtására szolgál.

A kód nyílt forráskódú, és az SQL Server Language Extensions GitHub-adattárban található.

Megvalósítási követelmények

Az SDK-felület olyan követelményeket határoz meg, amelyeket az SQL Servernek teljesítenie kell a .NET-futtatókörnyezettel való kommunikációhoz. Az SDK használatához be kell tartania néhány implementációs szabályt a főosztályban. Az SQL Server ezután végrehajthat egy adott metódust C# nyelven, és adatokat cserélhet a .NET nyelvi bővítmény használatával.

Az SDK használatára vonatkozó példa : Oktatóanyag: Sztring keresése normál kifejezésekkel (regex) a C#-ban.

SDK-osztályok

Az SDK több osztályból áll.

  • Az absztrakt osztály AbstractSqlServerExtensionExecutor határozza meg azt a felületet, amelyet a .NET-bővítmény az SQL Serverrel való adatcserére használ.

  • Számos segédosztály implementálja az CSharpDataSet adathalmaz-objektumot.

A következő szakaszban az SDK minden osztályának leírását megtalálja. Az SDK-osztályok forráskódja az SQL Server Language Extensions GitHub-adattárban érhető el.

Osztály: AbstractSqlServerExtensionExecutor

Az absztrakt osztály AbstractSqlServerExtensionExecutor tartalmazza az SQL Server .NET nyelvi bővítménye által c# kód végrehajtásához használt felületet.

A fő C#-osztálynak ebből az osztályból kell örökölnie. Ennek az osztálynak az öröklése azt jelenti, hogy bizonyos módszereket kell implementálnia a saját osztályában.

Ha ebből az absztrakt osztályból szeretne örökölni, az osztálydeklarációban az absztrakt osztály nevével bővíthető, ahol MyClass az osztály neve szerepel:

public class MyClass : AbstractSqlServerExtensionExecutor {}

Legalább a főosztálynak implementálnia kell a metódust Execute(...) .

A Execute metódus

A Execute metódus az a metódus, amelyet az SQL Server a .NET nyelvi bővítményen keresztül hív meg, hogy C#-kódot hívjon meg az SQL Serverről. Ez egy kulcsmetódus, amely tartalmazza az SQL Serverről végrehajtandó fő műveleteket.

Ha metódusargumentumokat szeretne átadni a C#-nak az SQL Serverről, használja a @param következő paramétert: sp_execute_external_script. A Execute metódus így veszi át az argumentumait.

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

A Init metódus

A Init metódus végrehajtása a konstruktor után és a Execute metódus előtt történik. Bármely művelet, amelyet a Execute előtt el kell végezni, ebben a módszerben elvégezhető.

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

Osztály: CSharpExtension

Az osztály CSharpExtension implementálja az összes nyelvi bővítmény API-t, és visszaadja az eredményeket a natív gazdagépnek.

Osztály: CSharpDataSet

Az absztrakt osztály CSharpDataSet tartalmazza a .NET-bővítmény által használt bemeneti és kimeneti adatok kezelésére szolgáló felületet.