Я пытаюсь создать хранимую процедуру clr для базы данных sql 2005, которая использует сборки .net 3.5
Итак, сначала я должен был изменить sql 2005, чтобы распознать system.core как небезопасный, что меня не очень радует (скорее, я сказал, что он БЕЗОПАСНЫЙ).
Теперь я получаю эту ошибку
Msg 6522, Level 16, State 1, Procedure StoredProcedure1, Line 0
A .NET Framework error occurred during execution of user defined routine or aggregate 'StoredProcedure1':
System.Security.HostProtectionException: Attempted to perform an operation that was forbidden by the CLR host.
The protected resources (only available with full trust) were: All
The demanded resources were: MayLeakOnAbort
System.Security.HostProtectionException:
at StoredProcedures.StoredProcedure1(String UtcDateTime)
Вот мой код
Exec StoredProcedure1 '7/8/2010 5:00:00 am'
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcedure1(string UtcDateTime)
{
SqlPipe p = SqlContext.Pipe;
DateTime converted = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Convert.ToDateTime(UtcDateTime), "Pacific Standard Time");
p.Send(converted.ToString());
}
};
Я не знал, как передать в него дату и время, поэтому использовал строку и затем преобразовал ее.