Exécution CLR SQL Server avec ODBC Connexion
	
	
		Bonjour,
Je viens de créer un CLR avec C# sous VS 2010, ma chaine de connexion doit être créer sous ODBC car il existe certain champ dans la base de données qui sont visible seulement avec ODBC.
Ci-dessous le code de ma CLR :
[
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   | Microsoft.SqlServer.Server.SqlProcedure]
        public static void Test_CLR()
        {
            using (OdbcConnection conn = new OdbcConnection("DSN=SAGE"))
            {
                OdbcCommand InsertCurrencyCommand = new OdbcCommand();
                InsertCurrencyCommand.CommandText =
                "SELECT * into tab2 FROM F_DOCENTETE";
 
                InsertCurrencyCommand.Connection = conn;
 
                conn.Open();
                InsertCurrencyCommand.ExecuteNonQuery();
                conn.Close();
            }
        } | 
 J'ai généré la DLL du projet et je l'ai ajouter sous SQL Server 2008
	Code:
	
1 2 3 4 5
   | CREATE ASSEMBLY DSN_CLR from 'C:\Users\plus\Documents\Visual Studio 2010\Projects\DSN_CLR\DSN_CLR\bin\Debug\DSN_CLR.dll' WITH PERMISSION_SET = EXTERNAL_ACCESS;
 
create PROCEDURE Test_CLR
AS
EXTERNAL NAME DSN_CLR.[DSN_CLR.Proc_Iheb].Test_CLR;  | 
 En exécution la procédure Test_CLR je reçois toujours le message d'erreur suivant :
	Citation:
	
		
		
			Msg 6522, Niveau 16, État 1, Procédure Test_CLR, Ligne 0
Une erreur .NET Framework s'est produite au cours de l'exécution de la routine ou de la fonction d'agrégation définie par l'utilisateur "Test_CLR" : 
System.Security.SecurityException: Échec de la demande d'autorisation de type 'System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
System.Security.SecurityException: 
   à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
   à System.Security.PermissionSet.Demand()
   à System.Data.Common.DbConnectionOptions.DemandPermission()
   à System.Data.Odbc.OdbcConnection.PermissionDemand()
   à System.Data.Odbc.OdbcConnectionFactory.PermissionDemand(DbConnection outerConnection)
   à System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   à System.Data.Odbc.OdbcConnection.Open()
   à DSN_CLR.Proc_Iheb.Test_CLR()