begin process at 2008 07 21 03:30:47
1 213 565 membres
33 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SQL SERVER 2005 : FONCTION DE SUPPRESSION DES ACCENTS DANS UNE CHAÎNE DE CARACTÈRES


Information sur la source

Catégorie :Base de données Source .NET ( DotNet ) Classé sous : sqlserver, accent, unicode, c, sqlclr Niveau : Initié Date de création : 08/01/2007 Date de mise à jour : 08/01/2007 17:26:23 Vu : 8 291

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note


Description

Cette fonction écrite en code .net qui s'intègre à SQL Server 2005 via la couche SQLCLR permet de supprimer tout ce qui est diacritiques (dont font partie les accents, les cédilles, etc.)
La méthode de base a été tirée du blog de Michael Kaplan de chez Microsoft : http://blogs.msdn.com/michkap/
Pour utiliser ce code il vous faudra dans Visual Studio 2005 dans lequel vous aurez à créer un projet "SQL Server Projet", dans "Base de données" / C#

Source

  • using System;
  • using System.Data;
  • using System.Data.SqlClient;
  • using System.Data.SqlTypes;
  • using Microsoft.SqlServer.Server;
  • using System.Globalization;
  • using System.Text;
  • public partial class UserDefinedFunctions
  • {
  • [Microsoft.SqlServer.Server.SqlFunction]
  • public static SqlString RemoveDiacritics(SqlString stArg)
  • {
  • string stFormD = stArg.ToString().Normalize(NormalizationForm.FormD);
  • StringBuilder sb = new StringBuilder();
  • for (int ich = 0; ich < stFormD.Length; ich++)
  • {
  • UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
  • if (uc != UnicodeCategory.NonSpacingMark)
  • {
  • sb.Append(stFormD[ich]);
  • }
  • }
  • return (new SqlString(sb.ToString()));
  • }
  • };
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Globalization;
using System.Text;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString RemoveDiacritics(SqlString stArg)
    {

        string stFormD = stArg.ToString().Normalize(NormalizationForm.FormD);
        StringBuilder sb = new StringBuilder();

        for (int ich = 0; ich < stFormD.Length; ich++)
        {
            UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
            if (uc != UnicodeCategory.NonSpacingMark)
            {
                sb.Append(stFormD[ich]);
            }
        }

        return (new SqlString(sb.ToString()));

    }
};

Conclusion

Pour utiliser cette fonction, faites un deploiement depuis Visual Studio 2005.

Pour la tester avec SQL Server :
select dbo.RemoveDiacritics('Téèààéààé*$ùùeéèçàççàstçàù')
-- Ajoutez bien le nom du schéma devant la fonction

Qui renverra :
Teeaaeaae*$uueeecaccastcau
08 janvier 2007 17:26:23 :
X
  • signaler à un administrateur
    Commentaire de Bidou le 09/01/2007 11:33:07 administrateur CS

    Un snippet sur codyx aurait presque suffit non? ;-)

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS