Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2019 (15.x) a novější verze
Zjistěte, jak můžete implementovat program jazyka C# pro SQL Server pomocí sady Microsoft Extensibility SDK pro .NET. Sada SDK je rozhraní pro rozšíření jazyka .NET, které se používá k výměně dat s SQL Serverem a spouštění kódu jazyka C# z SQL Serveru.
Kód je open source a najdete ho v úložišti SQL Server Language Extensions na GitHubu.
Požadavky na implementaci
Rozhraní SDK definuje sadu požadavků, které je potřeba splnit, aby SQL Server komunikoval s modulem runtime .NET. Pokud chcete použít sadu SDK, musíte dodržovat některá pravidla implementace ve vaší hlavní třídě. SQL Server pak může spustit konkrétní metodu v jazyce C# a vyměňovat data pomocí rozšíření jazyka .NET.
Příklad, jak můžete použít sadu SDK, najdete v Tutoriálu: Vyhledání řetězce pomocí regulárních výrazů v jazyce C#.
Třídy sady SDK
Sada SDK se skládá z několika tříd.
Abstraktní třída
AbstractSqlServerExtensionExecutordefinuje rozhraní, které rozšíření .NET používá k výměně dat s SQL Serverem.Několik pomocných tříd implementuje
CSharpDataSetobjekt datové sady.
V následující části najdete popisy jednotlivých tříd SDK. Zdrojový kód tříd SDK je k dispozici v úložišti SQL Server Language Extensions na GitHubu.
Třída: AbstractSqlServerExtensionExecutor
Abstraktní třída AbstractSqlServerExtensionExecutor obsahuje rozhraní používané ke spuštění kódu jazyka C# rozšířením jazyka .NET pro SQL Server.
Vaše hlavní třída jazyka C# musí dědit z této třídy. Dědění z této třídy znamená, že existují určité metody ve třídě, kterou potřebujete implementovat ve své vlastní třídě.
Chcete-li dědit z této abstraktní třídy, rozšíříte o abstraktní název třídy v deklaraci třídy, kde MyClass je název vaší třídy:
public class MyClass : AbstractSqlServerExtensionExecutor {}
Minimálně vaše hlavní třída potřebuje implementovat metodu Execute(...) .
Metoda Execute
Metoda Execute je metoda, která je volána z SQL Serveru prostřednictvím jazykového rozšíření .NET pro vyvolání kódu jazyka C# z SQL Serveru. Jedná se o metodu klíče, ve které zahrnete hlavní operace, které chcete spustit z SQL Serveru.
Pokud chcete předat argumenty metody jazyku C# z SQL Serveru, použijte @param parametr v sp_execute_external_scriptsouboru . Metoda Execute přebírá své argumenty tímto způsobem.
public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);
Metoda Init
Metoda Init se spustí za konstruktorem a před metodou Execute . Veškeré operace, které je třeba provést před Execute, lze provést v této metodě.
public virtual void Init(string sessionId, int taskId, int numTasks);
Třída: CSharpExtension
Třída CSharpExtension implementuje všechna rozhraní API pro rozšíření jazyka a vrací výsledky nativnímu hostiteli.
Třída: CSharpDataSet
Abstraktní třída CSharpDataSet obsahuje rozhraní pro zpracování vstupních a výstupních dat používaných rozšířením .NET.