<\/HEAD>
Heb je iemand in jouw organisatie die SCHREEUWT MET ZIJN TOETSENBORD? Alles is hoofdletters? Wat dacht je van de rebelse mensen die alles in kleine letters typen? Of nog erger, de First-word-is-proper-case-all-other-words-are-lower-case ninja's.<\/P>
<\/P>
Ik heb een persoonlijke ergernis (OCD). Feature-namen in GIS moeten Proper Case zijn. Happy Valley Road. Niet Happy valley road, niet Happy valley Road, en zeker niet HAPPY VALLEY ROAD.<\/P>
<\/P>
Ik wil graag de naamgeving in Proper Case afdwingen voor die features, ongeacht hoe de tekst door de editor is geschreven. Dit kan worden bereikt met een eenvoudige Function en Trigger in SQL.<\/P>
<\/P>
Maak eerst de volgende Function aan:<\/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>Vervolgens deze Trigger:<\/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>Let op dat dit alleen wordt uitgevoerd na een insert, niet na een update. Er kunnen legitieme redenen zijn waarom de SCHREEUWERS iets anders dan proper case willen, bijvoorbeeld "ND Happy Valley Road" (ND voor "North District). Dit stelt hen (of mij nadat ze naar me SCHREEUWEN) in staat om die ene feature bij te werken zonder dat de trigger mijn wijziging automatisch naar proper case zet.<\/P><\/P>Dit is een persoonlijke blog en beveelt de hierboven beschreven methoden niet aan, onderschrijft ze niet en ondersteunt ze niet. Het wijzigen van data met SQL buiten de ESRI software stack wordt uiteraard niet ondersteund en mag niet worden toegepast op een productie database zonder grondig begrip en een rampenherstelplan.<\/EM><\/P><\/BODY><\/HTML>