Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
AbstractSqlServerExtensionExecutorhatá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
CSharpDataSetadathalmaz-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.