<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.esri.com/Dev/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Inside the Geodatabase : Intermediate</title><link>http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Intermediate/default.aspx</link><description>Tags: Intermediate</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Debug Build: 61120.2)</generator><item><title>Geodatabase replication and compress</title><link>http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/11/25/Geodatabase-replication-and-compress.aspx</link><pubDate>Tue, 25 Nov 2008 17:15:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:3073</guid><dc:creator>JonMurphy</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.esri.com/Dev/blogs/geodatabase/comments/3073.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/geodatabase/commentrss.aspx?PostID=3073</wfw:commentRss><description>There is new documentation available which talks about some best practices when using the compress command while also employing geodatabase replication. Compress is a process run periodically by an ArcSDE administrator to reduce the size of the geodatabase...(&lt;a href="http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/11/25/Geodatabase-replication-and-compress.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=3073" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Intermediate/default.aspx">Intermediate</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Best+Practices/default.aspx">Best Practices</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/ArcSDE/default.aspx">ArcSDE</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Replication/default.aspx">Replication</category></item><item><title>Geodatabase Essentials – Enterprise Geodatabases</title><link>http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/05/07/Geodatabase-Essentials-_1320_-Enterprise-Geodatabases.aspx</link><pubDate>Wed, 07 May 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:2156</guid><dc:creator>JonMurphy</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/geodatabase/comments/2156.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/geodatabase/commentrss.aspx?PostID=2156</wfw:commentRss><description>Derek Law has written an article titled Enterprise Geodatabase 101 which was recently posted on ArcUser Online. The article provides a general overview of the enterprise geodatabase looking at key features, architecture, and implementation. It is geared...(&lt;a href="http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/05/07/Geodatabase-Essentials-_1320_-Enterprise-Geodatabases.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=2156" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Intermediate/default.aspx">Intermediate</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Geodatabase+Essentials/default.aspx">Geodatabase Essentials</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/ArcSDE/default.aspx">ArcSDE</category></item><item><title>Developer Tips - Qualified field names in ArcSDE</title><link>http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/04/30/Qualified-field-names-in-ArcSDE.aspx</link><pubDate>Wed, 30 Apr 2008 19:13:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:2125</guid><dc:creator>JonMurphy</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/geodatabase/comments/2125.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/geodatabase/commentrss.aspx?PostID=2125</wfw:commentRss><description>This post was provided by geodatabase Product Engineer James MacKay. There are fourteen field names that cause fields to behave slightly different in ArcSDE. They are: AREA POINTS FID EMINX EMINY EMINZ MIN_MEASURE LEN NUMOFPTS ENTITY EMAXX EMAXY EMAXZ...(&lt;a href="http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/04/30/Qualified-field-names-in-ArcSDE.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=2125" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Intermediate/default.aspx">Intermediate</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Best+Practices/default.aspx">Best Practices</category></item><item><title>Developer Tips - Using the Field Checker</title><link>http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/04/11/Developer-Tips-_2D00_-Using-the-Field-Checker.aspx</link><pubDate>Fri, 11 Apr 2008 20:40:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:1691</guid><dc:creator>brentardenpierce</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.esri.com/Dev/blogs/geodatabase/comments/1691.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/geodatabase/commentrss.aspx?PostID=1691</wfw:commentRss><description>








&lt;P class=style1&gt;&lt;EM&gt;This post was written by geodatabase Product Engineer James MacKay. James works on the geodatabase development team and is responsible for a lot of the geodatabase SDK that is generated.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The &lt;A href="http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriGeoDatabase/IFieldChecker.htm"&gt;IFieldChecker&lt;/A&gt; interface provides a way to validate fields for a specific workspace before they’re created. Reserved keywords, special characters and maximum field name lengths are properties that vary between different types of workspaces and DBMSs; the field checker will not only detect fields that violate these rules, but it will generate a “fixed” fields collection with a similar (but valid) name. There are three common cases where field checkers are useful:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://edndoc.esri.com/arcobjects/9.2/NET/de90607e-de22-4985-82e3-816be41d4fb6.htm"&gt;Creating new feature classes or tables&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriGeodatabase/IClass_AddField.htm"&gt;Adding fields to existing datasets&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Generate target dataset fields for use in the &lt;A href="http://edndoc.esri.com/arcobjects/9.2/NET/84a1a5d7-3fa3-452e-976c-8bb57ea5de5b.htm"&gt;feature data converter&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;A field checker should &lt;EM&gt;&lt;STRONG&gt;always&lt;/STRONG&gt;&lt;/EM&gt; be used whenever an application allows users to manually enter field names, but it’s a good defensive programming pattern to use them all of the time. The following code shows how to validate fields prior to a CreateTable or CreateFeatureClass call.&lt;/P&gt;
&lt;P&gt;Geoprocessing users: The geoprocessor also exposes field checking capability. See &lt;A href="http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?id=898&amp;amp;pid=880&amp;amp;topicname=Validating_table_and_field_names"&gt;this article&lt;/A&gt; for more information.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;IFields&lt;/SPAN&gt; ValidateFields(&lt;SPAN style="COLOR:#2b91af;"&gt;IWorkspace&lt;/SPAN&gt; workspace, &lt;SPAN style="COLOR:#2b91af;"&gt;IFields&lt;/SPAN&gt; fields)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;// Create and initialize a field checker.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;IFieldChecker&lt;/SPAN&gt; fieldChecker = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;FieldCheckerClass&lt;/SPAN&gt;();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.ValidateWorkspace = workspace;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;// Generate a validated fields collection.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;IFields&lt;/SPAN&gt; validatedFields = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;IEnumFieldError&lt;/SPAN&gt; enumFieldError = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.Validate(fields, &lt;SPAN style="COLOR:blue;"&gt;out&lt;/SPAN&gt; enumFieldError, &lt;SPAN style="COLOR:blue;"&gt;out&lt;/SPAN&gt; validatedFields);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;// You can either notify the user of any errors or just skip this step.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;IFieldError&lt;/SPAN&gt; fieldError = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;while&lt;/SPAN&gt; ((fieldError = enumFieldError.Next()) != &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:#2b91af;"&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style="COLOR:#a31515;"&gt;"Error in field {0}: {1}"&lt;/SPAN&gt;, fieldError.FieldIndex, fieldError.FieldError);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;// Return the validated fields.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; validatedFields;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0in;BORDER-TOP:medium none;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:medium none;PADDING-TOP:0in;BORDER-BOTTOM:medium none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=1691" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Intermediate/default.aspx">Intermediate</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.esri.com/Dev/blogs/geodatabase/archive/tags/Best+Practices/default.aspx">Best Practices</category></item></channel></rss>