12 Replies Latest reply on Feb 20, 2014 4:13 AM by SubbuA

    FileGeodatabase - Documentation and tools?

    richard_coleman
      Does anyone know where or when ESRI is going to release the format specs for the FileGeodatabase format (they had previously mentioned ArcGIS 10)?

      Is there any way to manipulate the FileGeodatabase structure outside of ArcMap/ArcCatalog?

      With all of the other geodatabase formats (various flavors of SDE and personal) you can rename or reorder fields in a geodatabase.  Using ArcCatalog you can not do either in a FileGeodatabase.

      Is there a way to access the data in a FileGeodatabase from outside of ArcGIS?

      With all of the other geodatabase formats you can at least establish an ODBC connection to the data.  I have yet to see anything other than ESRI products read the data contained in a FileGeodatabase.

      The FileGeodatabase format looks useful, but I don't want my vector data hidden and inaccessible in this format.

      Anyone have any ideas?
        • Re: FileGeodatabase - Documentation and tools?
          dlaw-esristaff
          Hi Richard,

          My understanding is that the File GDB API should be released soon after the ArcGIS 10 release.

          Takeaways from the Esri UC 2010 - Directions Magazine blog post
          (please review the comments)

          Also, FYI: technical session from the ESRI 2010 Developer Summit,

          Accessing Your Geodatabase Outside of ArcObjects
          Description: While using ArcObjects with your geodatabase provides access to the full information model of the geodatabase, there are times when another approach is required. See some of the current methods for doing this through SQL and be introduced to the file geodatabase open API. This API will allow you to access the contents of your file geodatabase independent of ArcObjects to view or modify data.
          (go to minute 57 for File GDB API content)

          Hope this helps,
          • Re: FileGeodatabase - Documentation and tools?
            richard_coleman
            ArcGIS 10 is out in the wild.....
              Any Idea on where the FileGeodatabase documentation and tools are?
            • Re: FileGeodatabase - Documentation and tools?
              lshipman-esristaff
              We are currently planning to release the Windows version of the file geodatabase API by the end of the year. This will include API documentation and example code.
              • Re: FileGeodatabase - Documentation and tools?
                MCederholm
                Are there any plans for an ODBC driver?
                • Re: FileGeodatabase - Documentation and tools?
                  bart_d_hound
                  Is this work on schedule?  As in we are in the final week before Thanksgiving, and no word yet, as to my question.
                  • Re: FileGeodatabase - Documentation and tools?
                    pvandijk28
                    Is this work on schedule?  As in we are in the final week before Thanksgiving, and no word yet, as to my question.


                    Well it is December now...almost end of the year.
                    • Re: FileGeodatabase - Documentation and tools?
                      lshipman-esristaff
                      Are there any plans for an ODBC driver?


                      Not as part of the initial release. It is under consideration for a later release.
                      • Re: FileGeodatabase - Documentation and tools?
                        lshipman-esristaff
                        Thanks for your interest in the File Geodatabase API.   The beta program for the File Geodatabase API is currently planned to begin by mid-January.  We are compiling a list of sites who are interested in the Beta program, if you are interested, please send me an email (lshipman@esri.com) with your contact information.

                        We�??ll be posting more information to the Geodatabase blog as we lead up to the Beta.   http://blogs.esri.com/Dev/blogs/geodatabase/default.aspx
                        • Re: FileGeodatabase - Documentation and tools?
                          dlaw-esristaff
                          FYI to all:

                          Please read the latest Geodatabase blog post on this topic:


                          Hope this helps,
                          • Re: FileGeodatabase - Documentation and tools?
                            bart_d_hound
                            FYI: now available,

                            File Geodatabase API (beta download)

                            Hope this helps,



                            It does help, thank you Derek.
                            • Re: FileGeodatabase - Documentation and tools?
                              SubbuA
                              Hi,
                              I Am new to the File GeoDatabase, am getting the below error when clicking the 5/6 chlid node click

                              Cannot access a disposed object.
                              Object name: 'Geodatabase'.

                              My Code is
                              --------------
                              //tree view node click event
                              private void GisSource_AfterSelect(object sender, TreeViewEventArgs e)
                                      {

                              List<FeatureClassInfo> FeatureClassList = new List<FeatureClassInfo>();

                                                      if (nodeLevel == 3)
                                                      {
                                                          FeatureClassList = GeoDatabaseInfo.GetAllFeatureClassInfo(e.Node.Name, false);
                                                      }
                                                      else
                                                      {
                                                          FeatureClassList = GeoDatabaseInfo.GetAllFeatureClassInfo(e.Node.Name, true);
                                                      }
                                                      if (FeatureClassList != null)
                                                      {
                                                          dgv_FeatureClassInfo.Columns.Clear();

                                                          dgv_FeatureClassInfo.DataSource = FeatureClassList;
                                                      }
                              }

                              public static List<FeatureClassInfo> GetAllFeatureClassInfo(string tableName, bool isDatasetName)
                                      {
                                          List<FeatureClassInfo> FeatureClassList = new List<FeatureClassInfo>();

                                          using (Geodatabase geodatabase = Geodatabase.Open(ConnectionInfo.ConnectionString))
                                          {
                                              try
                                              {
                                                  if (isDatasetName)
                                                  {
                                                      string[] featureclassList = geodatabase.GetChildDatasets(tableName, featureClassName);

                                                      foreach (string featureclass in featureclassList)
                                                      {
                                                           FeatureClassList.Add(GetFeatureClassInfo(featureclass, geodatabase));
                                                      }

                                                  }
                                                  else
                                                  {
                                                      FeatureClassList.Add(GetFeatureClassInfo(tableName, geodatabase));
                                                  }
                                              }
                                              catch
                                              {
                                                  FeatureClassList = null;
                                              }
                                              finally
                                              {
                                                  if (FeatureClassList != null)
                                                  {
                                                      geodatabase.Close();
                                                  }
                                              }
                                          }
                                         
                                          return FeatureClassList;
                                      }
                              public static FeatureClassInfo GetFeatureClassInfo(string tableName, Geodatabase geodatabase)
                                      {
                                          FeatureClassInfo featureClass = new FeatureClassInfo();

                                          Table table = geodatabase.OpenTable(tableName);
                                          var geometryType = GetGeometryType(table);
                                         
                                          featureClass.ShapeType = Enum.GetName(typeof(GeometryType), geometryType);
                                          
                                           table.Close();

                                          return featureClass;
                                      }

                              Please help me where am doing wrong.


                              Regards
                              SM