<\/HEAD>
Avez-vous quelqu'un dans votre organisation qui CRIE AVEC SON CLAVIER ? Tout est en majuscules ? Qu'en est-il des personnes rebelles qui écrivent tout en minuscules ? Ou pire encore, les ninjas du type Première-lettre-en-majuscule-toutes-les-autres-en-minuscules.<\/P>
<\/P>
J'ai une manie personnelle (TOC). Les noms des entités dans GIS doivent être en Proper Case. Happy Valley Road. Pas happy valley road, pas Happy valley Road, et certainement pas HAPPY VALLEY ROAD.<\/P>
<\/P>
Je voudrais appliquer la dénomination en Proper Case de ces entités quel que soit le format du texte saisi par l'éditeur. Cela peut être réalisé avec une simple Fonction et un Déclencheur en SQL.<\/P>
<\/P>
Commencez par créer la Fonction suivante :<\/P>
<\/P>
create function [dbo].[ProperCase](@Text as varchar(8000))
returns varchar(8000)
as
begin
declare @Reset bit;
declare @Ret varchar(8000);
declare @i int;
declare @c char(1);
select @Reset = 1, @i=1, @Ret = '';
while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like '[a-zA-Z]' then 0 else 1 end,
@i = @i +1
return @Ret
end
GO<\/PRE><\/P>Puis ce Déclencheur :<\/P><\/P>CREATE TRIGGER [dbo].[NAME_UPDATE]
ON [dbo].[SOME_TABLE]
AFTER INSERT NOT FOR REPLICATION
AS BEGIN
SET NOCOUNT ON;
UPDATE SOME_TABLE
SET
NAME = dbo.Propercase(NAME)
END
GO<\/PRE><\/P>Notez ici que cela ne se déclenche qu'après une insertion, pas après une mise à jour. Il pourrait y avoir une raison légitime pour laquelle les CRIEURS veulent autre chose que le proper case, par exemple "ND Happy Valley Road" (ND pour "North District"). Cela leur permet (ou me permet après qu'ils m'aient CRIÉ dessus) de modifier cette entité sans que le déclencheur ne modifie automatiquement la casse de mon édition.<\/P><\/P>Ceci est un blog personnel et ne recommande, n'endosse ni ne soutient les méthodes décrites ci-dessus. La modification des données via SQL en dehors de la suite logicielle ESRI n'est bien sûr pas prise en charge et ne doit pas être appliquée à une base de données de production sans une compréhension approfondie et un plan de reprise après sinistre.<\/EM><\/P><\/BODY><\/HTML>