私はC#で静的なクラスがあるとします。レジスタC#のassemblieと使用機能のSQL Serverで
public static class Math
{
[Microsoft.SqlServer.Server.SqlFunction]
public static int Add(int a, int b)
{
return a + b;
}
[Microsoft.SqlServer.Server.SqlProcedure]
public static void Void(int a, int b)
{
}
static void Main(string[] args)
{
}
}
私たちが行うSQLでこの機能を使用すること@faester´s answerで知っている:へ
EXEC SP_CONFIGURE 'clr enabled', 1
GO
RECONFIGURE
GO
-- CONSIDER: DROP ASSEMBLY SqlClr
GO
CREATE ASSEMBLY SqlClr
FROM 'pathtoassembly'
WITH PERMISSION_SET = SAFE;
GO
SELECT * FROM sys.assemblies
GO
CREATE FUNCTION [MathAdd] (@a int, @b int)
RETURNS INT
AS EXTERNAL NAME [SqlClr].Math.[Add]
GO
CREATE PROCEDURE [Void] @a INT, @b INT
AS EXTERNAL NAME [SqlClr].Math.[Void]
GO
SELECT dbo.MathAdd (1, 2)
EXEC void 1, 2
をこの例を実行する最初私は、C#ファイルにメインを追加
using System;
using System.Collections.Generic;
using System.Text;
public static class Math
{
[Microsoft.SqlServer.Server.SqlFunction]
public static int Add(int a, int b)
{
return a + b;
}
[Microsoft.SqlServer.Server.SqlProcedure]
public static void Void(int a, int b)
{
}
static void Main(string[] args)
{
}
}
SQLコードを実行すると...どのパスを追加しますか。私がやっていた:
CREATE ASSEMBLY SqlClr
FROM 'C:\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe'
WITH PERMISSION_SET = SAFE;
GO
がObiously私はそうSLNファイルとCSファイルで試してみましたが、それは仕事を得ることができない、.EXE追加してはいけません...
私は以下、エラーを取得:
パスに入れるに何のほかに私の質問は、C#のコードをビルドする方法についてですConfiguration option 'clr enabled' changed from 1 to 1. Run the RECONFIGURE statement to install. Msg 6501, Level 16, State 7, Line 1 CREATE ASSEMBLY failed because it could not open the physical file "C:\Visual Studio 2005\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe": 5(Acces denied.).
、私は任意のパーソナルプラグインと同じように構築されますrプログラムでは、何かを追加しますか?
- 何が起こっていますか? ウォークスルーのために