Fonction sur un External Name is not static
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 :
Citation:
CREATE ASSEMBLY failed beacuase Method '' on type '' in safe assembly '' is storing to a static field
Le code est donc le suivant :
Code:
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:
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
Citation:
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.
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) :fou:
Merci par avance