begin process at 2012 05 25 11:57:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

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

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


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :15 435

Auteur : skweeky

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
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


 Historique

08 janvier 2007 17:26:23 :
X

 Sources de la même categorie

Source .NET (Dotnet) ENTITY FRAMEWORK - AVOIR UN INCLUDE TYPÉ par jesusonline
Source avec Zip APPLICATION BASE DE DONNÉES par pretude
Source avec Zip Source avec une capture Source .NET (Dotnet) CRÉATION DE CLASSES MÉTIERS À PARTIR D'UNE BASE DE DONNÉES par sebmafate
Source avec Zip Source avec une capture Source .NET (Dotnet) C# SQLCE DEMO par DanMor498
Source avec Zip EXPORTATION DE FICHIER CSV VERS UNE TABLE SQLSERVER par imothepe_33

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER SCRIPT SQL SQL SERVER (CREATE - DROP - INSERT - TAB... par citt
Source avec Zip Source avec une capture Source .NET (Dotnet) SQL SERVER BROWSER par Samir63
Source avec Zip Source .NET (Dotnet) MSN ADDIN par T_Mehdi
Source .NET (Dotnet) GESTION D'UNE MQ SERIES ( MESSAGE QUEUE SERIES ) D'IBM AVE... par miao5
Source avec Zip Source avec une capture Source .NET (Dotnet) [ CS2GEN ] - GENERATEUR DE CODE NTIERS POUR BASES DE DONNÉE... par romagny13

Commentaires et avis

Commentaire de Bidou le 09/01/2007 11:33:07 administrateur CS

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

Commentaire de ebaloo le 25/05/2009 08:41:44 10/10

Tres bien.

Merci

Commentaire de dymsbess le 24/02/2011 17:25:37

Voici une fonction simplifiée, avec un Tutorial pour créer une CLR depuis Visual Studio 2010 :
http://www.xoowiki.com/Article/Csharp/remplacer-les-accents-dans-une-chaine-373.aspx

Commentaire de skweeky le 25/02/2011 10:32:00 administrateur CS

Elle n'est pas simplifiéé, il ne fait pas la même chose... Transformer une chaîne en ASCII ne revient pas à la même chose de débarasser une chaîne Unicode de ses caractères de type diacritiques !!!

Commentaire de dymsbess le 26/02/2011 02:36:39

Je t'invite à tester la seconde procédure et à comparer les résultats avec la première, ils sont rigoureusement identiques.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

SqlServer [ par dadge ] Je n'arrive pas à me connecter à des servers sous sql server 2000 alors que cela marche sous sql server 7.0 pourtant je remplis les mêmes champs dans XML et accent ... [ par Thanos_the_yopper ] voilà mon souci : je dois écrire un fichier XML. Or, dans le fichier créé, tous les accents ont été sucrés....je l'encode en UTF8 ... comment qu'il fa Encoding en unicode [ par bigflo ] Salut,Alors j'ai chercher sur le site mais j'ai pas trouver ce qu'il me fallait...C'est peut etre tout bete mais bon je patoge allegrement :)Mon petit petit problème d'accent :/ [ par RiCoOoO ] Je récupère les infos de l'exe tracert de windows et je l'affiche dans un label. Cependant les "é" sont remplacés par des "," (pareil pour les autres [C#] J'vais passer Unicode par la fenetre [ par scoubidou944 ] COMMENT = "Gestion des bureaux virtuels, affichage sur plusieurs écrans..."un texte aussi con rentre dans la table ASCII sans pb, pourtant visual stud webrequest unicode en ascii [ par ultima_93 ] Bonjour,Je vous explique mon probleme, j'envoi une url grace a webrequest , à un service qui est en c++.lorsque j'envoi mon url , ell peut comporter Lecture d'un fichier avec accent non reconnu [ par Cameleon69 ] Bonjourje lis un fichier avec la méthode suivante :string helpFile = Application.StartupPath + @"\aide.hlp";StreamReader sr = File.OpenText(helpFile); Lecture fichier plat, Accent [ par Diamondduff ] Je lis ligne à ligne un fichier plat....Les accents n'apparaissent pas, je suis blaséIl y a un jeu de caractère à passer? ou quelque chose à faire? insert sqlserver [ par amirirn1 ] bonjour,je veux entrer des donn&#233;e dans la base de donn&#233;mais qd je fais l insertion j ai l erreur&nbsp; ExecuteNonQuery:Connection property h Unicode et SQL Server [ par yoannd ] Bonjour &#224; tous, Je cherche &#224; faire un petit truc, l&#224;, mais ca marche pas des masses. J'ai une base de donnes contenant des phon&#233;t


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales