GDBmobile, ESRI Mobile Geodatabases

Esri mobile geodatabases were introduced in ArcGIS Pro 2.7, with desktop GIS support only in ArcGIS Pro 2.7, 2.8 and subsequent.  This documentation refers to mobile geodatabases as mobile GDB for short.   Mobile geodatabases are basically SQLite files with a .geodatabase extension.   They require installation of an Esri-supplied .dll file called stgeometry_sqlite.dll. as well as an optional SQLITE3.DLL file.  As one commentator put it, mobile geodatabases seem to be "recreating the personal geodatabase for the 2020s."

 

Esri utilizes several different "geodatabase" formats for data, in four main types:  

 

 

 

 

Required DLLs

To use mobile geodatabases, we must install the optional stgeometry_sqlite.dll file.  This file is an Esri-provided DLL that extends SQLite with Esri's ST_GEOMETRY type.   We must also install and use an external SQLITE3.DLL file.

 

The stgeometry_sqlite.dll file comes in two versions, a 64-bit version and a 32-bit version.  The easiest way to install this file is to visit the Product Downloads page for Release 9, Manifold Viewer, or SQL for ArcGIS Pro, and to download and install the optional package with DLLs for Postgres, MySQL, and Esri Mobile Geodatabases.  Follow instructions on the download page to install that optional package.  Get the open_source_db_64.zip download for 64-bit Manifold.

 

We must also install an optional, external SQLITE3.DLL file that may be obtained from the official sources for SQLite and SpatialLite:

 

 

Manifold products like Release 9, Manifold Viewer, and SQL for ArcGIS Pro include built-in support for SQLite, to connect to GPKG and to SQLite databases, but those use different .dlls than Esri's mobile geodatabase technology.  When Esri's stgeometry_sqlite.dll extension and the optional SQLITE3.DLL files are copied into the Manifold installation folder, Manifold will automatically load Esri's stgeometry_sqlite.dll file to connect to mobile geodatabases.

Mobile Geodatabases

Esri introduced mobile geodatabases for support of mobile application.  According to Esri, they are "the foundation for interoperable workflows between ArcGIS Pro and ArcGIS Runtime. In the future, mobile geodatabases will enable enhanced workflows and applications in ArcGIS Runtime and the Esri suite of mobile apps."

 

Mobile geodatabases are basically SQLite files with a .geodatabase extension.  To function as a mobile geodatabase, they require installation of an Esri-supplied .dll file called stgeometry_sqlite.dll.  Although SQLite is open source, Esri's implementation of mobile geodatabase using SQLite is not open source:  it depends on a proprietary Esri .dll file to implement Esri's proprietary ST_GEOMETRY type.  

 

That leads to a possible inconsistency for SQL users:  On the one hand Esri states "Using a SQL client, you can access your spatial data through SQL statements that implement the ISO SQL/MM Spatial Standard and the Simple Feature Specification of the OGC,"  while on the other hand in the next paragraph Esri warns, "Caution: Using SQL to alter or edit the data or schema of datasets stored within your mobile geodatabase could corrupt your schema."   That does not indicate Esri has confidence in the robustness of their implementation or their API.

 

Therefore, although Manifold has enabled all geodatabase features within the mobile geodatabase dataport, Manifold recommends using mobile geodatabases in read-only mode.   The Manifold mobile geodatabase dataport can read and write mobile geodatabases, and it can create new tables and drawings in existing mobile geodatabases, but it will not create a new mobile geodatabase from scratch.

 

The Manifold Mobile GDB Dataport is Read / Write

 

Manifold products like Release 9, Viewer, and SQL for ArcGIS Pro use Esri's own API to connect to mobile geodatabases.  The Manifold mobile GDB dataport is fully read/write and allows Manifold to edit Esri mobile geodatabases in place.  Manifold  includes numerous technical features to facilitate read/write use of Esri mobile geodatabases without problems.  

 

The Manifold Mobile GDB dataport:

 

 

Limitations of the Esri API:

 

 

--SQL9

SELECT [area], [code], [name], [geom]

INTO [gdb]::[states] (

  PROPERTY 'FieldGeomType.geom' 'area' -- the default would be 'point'

) FROM [states];

 

For an example of connecting to an Esri GDB, please see the Example: Connect to an ESRI GDB File Geodatabase topic.

Using Mobile Geodatabases

Working with mobile geodatabases is very similar to working with file geodatabases, except that we link or open a file ending in a .geodatabase extension instead of a gdb file (no extension) within a folder that is the file geodatabase.

 

For examples, see the GDB, ESRI File Geodatabase topic.

Exporting / Writing to Mobile GDB

Mobile GDB drawings cannot handle a mix of object types.  Therefore when writing to mobile GDB, Manifold will split a drawing that contains a mix of points, lines and areas into three different drawings within the mobile GDB.    Likewise, when writing to a mobile GDB that is linked, for example, when copying a drawing from a Manifold project and pasting into a linked mobile GDB data source, Manifold automatically splits a drawing containing geoms of different object types into separate drawings for each type within the mobile GDB.

 

Manifold can write drawings and tables to an existing mobile geodatabase, but the mobile geodatabase dataport cannot create a new mobile geodatabase.

 

Notes

Pass through of mobile GDB to third party applications - When an Esri mobile GDB is connected as a data source within a Manifold project, that data source then becomes available to any third party application which connects to the Manifold .map project by using the Manifold ODBC driver.   This provides the ability to read/write Esri mobile geodatabases even to those applications which on their own cannot connect to Esri mobile geodatabases.   See examples cited below.

 

Esri is not Manifold - When connecting to mobile GDB we must be aware we are no longer using Manifold code but instead are using Esri code.  Esri products are high quality and there are many advantages to using Esri's own code to connect to intricate Esri formats such as mobile GDB, since presumably Esri's code can handle all the many internal and undocumented quirks of the format. One major disadvantage is that Esri's code in general is not as bulletproof as the Radian technology used in Manifold.  Esri code can and does crash, so connections to mobile GDB fall outside of Manifold's reputation for never crashing.  

 

Videos

Manifold Viewer - View GDB Faster than ArcGIS Explorer - Esri's ArcGIS Explorer product is a free viewer that allows Esri people to view Esri GDB Geodatabases, along with other data.  Unfortunately, Esri has stopped producing Explorer and has replaced it with ArcGIS Earth, which cannot connect to and display Esri GDB Geodatabases.  The video compares Explorer to Viewer side-by-side so Esri users can see that if they need to continue viewing GDB Geodatabases for free they can reliably use Viewer for fast, high quality GDB viewing.

 

See Also

GDB, ESRI File Geodatabase

 

GDB, ESRI File Geodatabase, Old Format

 

GDBmobile, ESRI Mobile Geodatabases

 

MDB, ESRI Personal Geodatabase

 

ESRI SDE Geodatabase

 

Example: Convert an ESRI File Geodatabase into a .map Project - How to convert data in ESRI's current file geodatabase format into a  Manifold .map project in a single step.  We convert ESRI's example NapervilleGas GDB geodatabase, all 857 files, into a single, unified Manifold .map project.

 

Example: Convert an ESRI Personal Geodatabase into a .map Project - How to convert data in ESRI's legacy personal geodatabase format into a  Manifold .map project in a single step.

 

Example: Create an ODBC Data Source with Windows - How to create an ODBC data source (a DSN) using dialogs built into Windows 10.

 

Example: Connect to Manifold from Release 8  - Step by step procedure to connect from Manifold System Release 8 to a Manifold .map file using Manifold's ODBC driver.

 

Example: Connect to an ESRI GDB File Geodatabase - Connect Manifold to an ESRI GDB file geodatabase, display the contents, make a selection in the GDB and overlay in a map.

 

Example: Connect to an ESRI GDB usng GDAL/OGR  -  Instead of using Manifold's built-in ability to connect to modern ESRI GDB file geodatabases, use the Manifold GDAL/OGR dataport to take advantage of the GDAL library's ability to connect to deprecated GDB formats.

 

Example: Connect Through Manifold ODBC to a Third Party  - With Release 8, use an ODBC connection to a Manifold .map to connect through the .map project to a third party, external data source, an ESRI GDB file geodatabase.  We use Manifold facilities as an intermediary to give Release 8 capabilities it does not have on its own, to link into data stored within an ESRI file geodatabase.

 

Example: Connect LibreOffice Through Manifold to an ESRI GDB - A companion example topic to the Example: Connect Through Manifold ODBC to a Third Party  topic.  Shows how to connect LibreOffice Base, the database part of LIbreOffice, through Manifold to link an ESRI GDB file geodatabase table into LibreOffice.