Udostępnij za pośrednictwem


Za pomocą zestawów zweryfikowania z programem SQL Server (C + +/ CLI)

Rozszerzone procedury przechowywane, pakowane jako biblioteki (dll), umożliwiają rozszerzenie funkcji programu SQL Server za pośrednictwem funkcji opracowanych z Visual C++.Rozszerzone procedury przechowywane są implementowane jako funkcji wewnątrz biblioteki DLL.Oprócz funkcji, można również zdefiniować rozszerzonych procedur przechowywanych Typy zdefiniowane przez użytkownika i Funkcje agregujące (takich jak Suma lub średnia).

Gdy klient wykonuje procedurę przechowywaną, wyszukiwanie serwera SQL dla biblioteki DLL skojarzone z rozszerzona procedura przechowywana i ładuje bibliotekę DLL.SQL Server wymaga żądanej rozszerzona procedura przechowywana i jest wykonywany w kontekście zabezpieczeń.Rozszerzona procedura przechowywana, a następnie wynik przebiegów ustawia i zwraca parametry na serwer.

SQL Server 2005zapewnia rozszerzenia (T-SQL) pozwala zainstalować sprawdzalnych zestawów do programu SQL Server Transact-SQL.Zestaw uprawnień programu SQL Server Określa kontekst zabezpieczeń z następujące poziomy zabezpieczeń:

  • Tryb nieograniczony: uruchomienie kodu na własne ryzyko; kod nie musi być sprawdzalny typ palety.

  • Tryb bezpieczny: sprawdzalny uruchomić kod typesafe; skompilowana z /clr:safe.

Tryb awaryjny wymaga wykonane zestawów sprawdzalny za typesafe.

Tworzenie i ładowanie zestawu sprawdzalnych do programu SQL Server, należy użyć poleceń języka Transact-SQL, tworzenie zestawu i UPUŚĆ montażu w następujący sposób:

CREATE ASSEMBLY <assemblyName> FROM <'Assembly UNC Path'> WITH 
  PERMISSION_SET <permissions>
DROP ASSEMBLY <assemblyName>

Polecenie PERMISSION_SET Określa kontekst zabezpieczeń i może mieć wartości bez ograniczeń, bezpieczne lub EXTENDED.

Ponadto można użyć polecenia Utwórz funkcji powiązać nazwy metody w klasie:

CREATE FUNCTION <FunctionName>(<FunctionParams>)
RETURNS returnType
[EXTERNAL NAME <AssemblyName>:<ClassName>::<StaticMethodName>]

Przykład

Poniższy skrypt SQL (na przykład nazwanego "MyScript.sql") ładuje zestawu do programu SQL Server i udostępnia metody klasy:

-- Create assembly without external access
drop assembly stockNoEA
go
create assembly stockNoEA
from 
'c:\stockNoEA.dll'
with permission_set safe

-- Create function on assembly with no external access
drop function GetQuoteNoEA
go
create function GetQuoteNoEA(@sym nvarchar(10))
returns real
external name stockNoEA:StockQuotes::GetQuote
go

-- To call the function
select dbo.GetQuoteNoEA('MSFT')
go

Skrypty SQL może być wykonywany interaktywnie, w programie SQL Query Analyzer lub narzędzia sqlcmd.exe, w wierszu polecenia.Następujący wiersz polecenia łączy z serwerem MójSerwer, używa domyślnej bazy danych, korzysta z zaufanego połączenia, nakłady MyScript.sql i wyprowadza MyResult.txt.

sqlcmd –S MyServer -E –i myScript.sql –o myResult.txt

Zobacz też

Informacje

Jak: Migrowanie do /clr:safe (C + +/ CLI)

Klasy, struktury i związki