<\/HEAD>
Het is heel gemakkelijk als GIS-beheerder om heel veel velden toe te voegen aan een feature class en nog gemakkelijker om naïef te denken dat mensen ze ook daadwerkelijk gaan invullen of bewerken! Een veelvoorkomend thema voor mij zijn datumvelden. We hebben bewerkingsdatum, aanmaakdatum, FGDC bewerkings- en aanmaakdatum, jaar... bla bla bla.<\/P>
<\/P>
Ik wou dat er maar één was, of zelfs geen enkele, verplichting voor editors om aan data te denken en dat de database het gewoon... afhandelde.<\/P>
<\/P>
Dat kan ook. Met een database trigger. Laten we beginnen met FGDC-datums. Als je een vorm van feature-level metadata implementeert, of wat data-mining die een ander metadata-element tagt met FGDC-bron, aanmaak- of bewerkingsdatum maar editor tracking is ingeschakeld, is er geen reden waarom je ook de FGDC[whatever]DATE-kolom zou moeten invullen.<\/P>
<\/P>
CREATE TRIGGER [dbo].[SOMETABLE_DATE]
ON [dbo].[SOMETABLE]
AFTER INSERT, UPDATE NOT FOR REPLICATION
AS BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[SOMETABLE]
SET
SRCDATEFGDC = (convert(varchar(8), SOURCEDATE, 112)),
CREATEDATEFGDC = (convert(varchar(8), CREATEDATE, 112)),
EDITDATEFGDC = (convert(varchar(8), EDITDATE, 112))
END
GO<\/PRE><\/P>Hier nemen we de EDITDATE- en CREATE-datumwaarden, die sql zijn<\/P>datetime(2)<\/PRE>en converteren ze naar een stringformaat als yyyymmdd. De 112 bepaalt het uitvoerformaat. Zie CAST and CONVERT (Transact-SQL)<\/A> voor een volledige lijst van datumconversieformaten.<\/P><\/P>
Bovendien selecteert de gebruiker in dit geval ook een brondatum die anders kan zijn dan de aanmaakdatum en die wordt ook geconverteerd.<\/P>
<\/P>
Als je een jaar-kolom hebt kun je ook<\/P>
<\/P>
YEAR = CASE WHEN SOURCEDATE IS NULL THEN NULL ELSE YEAR(SOURCEDATE) END<\/PRE><\/P>met null-waardeafhandeling erbij.<\/P><\/P>Als je om een of andere reden editor tracking hebt uitgeschakeld (wat vaak problemen veroorzaakt met Collector for ArcGIS) kun je via een default constraint op je datumkolom(men) zetten als<\/P>getdate()<\/PRE>.<\/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>