Bonjour,
je me heurte à un souci qui me parait contradictoire lors de mes tentatives pour déclarer une fonction développée dans VB.Net
J'ai du dans un premier temps retirer tous les Shared et Static de mon code pour pouvoir ajouter l'assembly dans SQL Server (MS SMS), le message d'erreur d'origine étant :
Le code est donc le suivant :CREATE ASSEMBLY failed beacuase Method '' on type '' in safe assembly '' is storing to a static field
Code .net : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Namespace NormalisationAdresses Public Class NormalisationAdresses Public Function NormaliserRue(typeAbrege As String, nomRueNormalisee As String, Optional longueurMax As Integer = 30) As String Dim rueComplete As String If NomRueEstNombreOrdinal(nomRueNormalisee) Then rueComplete = String.Concat(nomRueNormalisee, " ", StrConv(typeAbrege.ToLower, VbStrConv.ProperCase)) Else rueComplete = String.Concat(typeAbrege.ToLower, " ", nomRueNormalisee) End If If Len(rueComplete) > longueurMax Then rueComplete = nomRueNormalisee End If Return rueComplete End Function End Class End Namespace
Le souci est que côté SQL Server, lorsque j'essaie de faire la déclaration de la fonction :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 IF EXISTS (SELECT id FROM sysobjects WHERE name='NormaliserRue' and xtype in ('FN','TF', 'FS')) DROP FUNCTION dbo.NormaliserRue GO CREATE Function NormaliserRue(@typeAbrege VARCHAR(MAX), @nomRueNormalisee VARCHAR(MAX), @longueurMax Int = 30) RETURNS VARCHAR(MAX) AS EXTERNAL NAME NormalisationAdresses.[NormalisationAdresses.NormalisationAdresses.NormalisationAdresses].NormaliserRue GO sp_configure 'clr enabled', 1 GO RECONFIGURE GO
Je me retrouve avec ce message d'erreur
Alors si quelqu'un peut me dire comment avoir d'un côté une dll qui sera acceptée (sans static) et qui sera exploitable (avec static)Msg 6573, Level 16, State 1, Procedure NormaliserRue, Line 10
Method, property or field 'NormaliserRue' of class 'NormalisationAdresses.NormalisationAdresses.NormalisationAdresses' in assembly 'NormalisationAdresses' is not static.
Configuration option 'clr enabled' changed from 1 to 1. Run the RECONFIGURE statement to install.
Merci par avance
Partager