Subscribe to this thread
Home - General / All posts - import gdb file not working in M9 ?
Corentin70 post(s)
#15-Jun-20 20:01

Hello,

I am not familiar with gdb files but I recentrly received from my client a lot of them (in fact several zip files with gdb folders). I succed importing them in QGIS but not in M9, I would like to import everything directly in M9 rather than importing in QGIS export them in shp and then import them in M9 (or M8).

I tried to import them in M9 in several ways :

1. file/import, click on the zip file containing all the ~100 files => nothing happen

2. file/import select the *.gdb filter click on the gdb.gdb => nothing happen

3. follow the help file of M9 : file/create new datasource/type : gdb ; source : point on the gdb.gdb ; create new data source => a new data source is created with just systemdata/mfd_meta and mfd_root.

What do I do wrong ?

I am running M9.0.172.3 with no ODBC server installed. running in 64bit mode

At the end of the day I will need to import everything in M8, is there a way to import directly gdb in M8?

Is there a way to export a M9 projet to M8?

Thank you for your help

LeRepère
137 post(s)
#15-Jun-20 20:31

Hi Corentin,

You have to select gdb file in gdb.gdb

Dimitri

6,064 post(s)
#16-Jun-20 05:05

There are four different types of ESRI "geodatabases", two of which are called "GDB." There are several step by step topics in the documentation that will help (In case I got any of the links wrong, all the topics below are listed in the "See Also" section of the first topic listed):

GDB, ESRI File Geodatabase

GDB, ESRI File Geodatabase, Old Format

Example: Connect to an ESRI GDB File Geodatabase

Example: Connect to an ESRI GDB usng GDAL/OGR

Example: Convert an ESRI File Geodatabase into a .map Project

Example: Connect LibreOffice Through Manifold to an ESRI GDB

My guess is that you have "old" format GDB, to which Manifold connects using GDAL, as discussed in the second topic above. But if you haven't installed GDAL (see the topic for a link to installation instructions), that cannot work.

QGIS relies on GDAL for all imports, so whatever is in GDAL is automatically available, albeit at the downsides of having to download, install, and use GDAL for everything. Manifold doesn't use GDAL for all the many formats Manifold supports, and instead only uses GDAL for occasional niche formats, like "old" format GDB, that are rarely used. That saves most people from having to deal with GDAL. Q people don't care about that since they're downloading over a gigabyte of stuff anyway and they don't have an alternative to GDAL, but it is a factor if you want to keep downloads small, 87 MB, and get fast launch.

It is odd that if you have Q installed on the same machine that GDAL isn't there for Manifold to use as well. That's something to sort out by considering the installation instructions for GDAL, I suppose, if that is the problem and not something simpler like not choosing the right file to import.

At the end of the day I will need to import everything in M8, is there a way to import directly gdb in M8?

See the last topic in the list. There is also an example topic about how to connect to 9 from 8, so you can pull data from a 9 project into 8:

Example: Connect to Manifold from Release 8

You could, therefore, connect through 9 to the GDB and then copy/paste what you wanted from the GDB into an 8 project.

adamw


9,283 post(s)
#17-Jun-20 08:04

As LeRepère says, you have to select the *file* named GDB (inside a folder full of geodatabase files). It should not matter whether you are using Import or Link or Create - New Data Source, all of that should work.

If you continue getting no data, check the log window, it might complain about something.

If nothing helps, post example geodatabase here so that we could take a look at what is going on - or contact tech support and offer to send example data to them. Like Dimitri says, there are old-style geodatabases that we do not support (because ESRI's SDK that we use to access geodatabases does not support them), but that can still be read into 9 through GDAL - and into 8 through 9 through GDAL.

Corentin70 post(s)
#17-Jun-20 13:49

I tried to select the *file* named gdb (inside the folder full of geodatabase files) and nothing happens, the log files does not report anything (as you can see from my screenshot)

I haven't has the time yet to test all the methods (including trying to connect throught gdal) mentionned by Dimitri with my own data. I would like to test with some gdb data from manifold website to see if I understand well the documentation but I have not found any. I want to know if I don't succeed to import because (i) my data is wrong or (ii) my work process is wrong or (iii) something is wrong with my manifold installation & integration with gdal.

If you could provide some gdb data I could test (ii) and (iii)

Unfortunately my gdb data is issued by my client and I am not sure I can post it here.

thank you for your answers

Thank you Dimitri for the tip to connect M9 & M8 throught ODBC it worked well!

Attachments:
M9 gdb import.PNG

rk
391 post(s)
#17-Jun-20 14:01

Just a thought. Try importing from path with no spaces. like C:\data\MAPA_POTENCIAL.gdb\gdb

Corentin70 post(s)
#17-Jun-20 14:08

Not any better

in the capture I tried with import gdb file; with creating datasource gdb and gdal

Attachments:
M9 gdb import 2.PNG

rk
391 post(s)
#17-Jun-20 14:47

I created example gdb by exporting a drawing from M9.

You can try to export a drawing to gdb also.

Attachments:
gdb_sample.gdb.zip

Corentin70 post(s)
#17-Jun-20 14:58

Thank you very much,

But it is still not working (see capture)

I tried again import gdb, create datasource (gdb & gdal)

(In QGIS it works fine : I can see your sample draw)

Attachments:
samplegdb.PNG

Dimitri

6,064 post(s)
#17-Jun-20 15:45

Works perfectly for me. Try something simple:

1. Download the sample gdb provided by rk.

2. Unzip it. That creates a folder called gdb_sample.gdb

3. Read GDB, ESRI File Geodatabase

4. Follow that procedure, step by step, to import the gdb file that is inside the gdb_sample.gdb

If that does not work, report back what you did, step by step. Don't mess around with GDAL or anything else. Just repeat the import process as given in that topic as faithfully as you can.

adamw


9,283 post(s)
#17-Jun-20 16:31

Hold on, the file posted by Riivo is not working either? That's good news, the problem might not be related to the file format then, no need to post any of the real data until the known-good test data loads fine.

Here's the sequence of steps to try:

Unpack the archive in Riivo's post into some folder. Close any current MAP files you have opened, save changes, etc. Create a new MAP file. Invoke File - Link, navigate to the folder with the unpacked files, select the file named 'gdb' in 'gdb_sample.gdb', click Link. This should create a data source named 'gdb_sample.gdb'. Open the data source. You should see two folders: 'Drawing_Table' and 'System Data', inside the folder named 'Drawing_Table' there should be a drawing and a table, and the drawing should contain a single area.

If you aren't seeing the drawing and the table, good, let's check the log window. To access GDB data we use an ESRI DLL named FILEGDBAPI.DLL. The log window might complain about not being able to load our own EXTGDB.DLL that wraps FILEGDBAPI.DLL - from your screens I see that it doesn't, but let's recheck to be sure. If it doesn't complain about being able to load any DLLs, then the DLL is loaded, but for some reason it failed to load the file. This can happen for multiple reasons and the very first thing to check is which exact version of FILEGDBAPI.DLL ended up being loaded - please search your drives for all files named 'FILEGDBAPI.DLL' and check whether any of them are in the system's or user's PATH. We do ship our own version of that DLL but we do try loading it from the system PATH first, so if there's an older version in the PATH, we will load it and then it will refuse to function.

Also, your screens show that GDAL is not getting loaded either - this time likely because you are missing a path to it.

All in all, this looks like a configuration issue.

lionel

646 post(s)
#19-Jun-20 06:25

https://www.rapidee.com/en/about

lionel

646 post(s)
#19-Jun-20 06:41

https://www.nirsoft.net/utils/registered_dll_view.html

adamw


9,283 post(s)
#19-Jun-20 09:02

This particular tool won't help because it lists COM DLLs and ESRI's DLL isn't that. What is needed is a simple search for all instances of the DLL on all drives plus the contents of the PATH variable. (Thanks for the link though, we also like Nirsoft tools. :-))

Corentin70 post(s)
#19-Jun-20 11:13

I let my search engine run overnight for this dll and it has not yet come with something,

in the portable installation folder of M9 I found this dll v1.5.1.253

As a matter of fact I recently installed ArcGIS10.4.1 but I am still waiting from my manager to grant me access to a shared licence.

My problem of not succeding to import gdb file occured before I installed ArcGIS.

adamw


9,283 post(s)
#19-Jun-20 11:25

Spending a night to search the drives seems a little too slow.

You can quickly search for the DLL from the command line:

Launch Command Prompt. Then run the following commands for each drive that you have (C, D, E, etc):

c:

cd \

dir /b /s filegdbapi.dll

This is going to search the drive (c:) from the root folder (\) and output a path for each found file named FILEGDBAPI.DLL.

The concern is that you might have multiple such files of different versions with the wrong one loading because its folder is in PATH. You should have these DLLs in the Manifold folder, yes, the version of 1.5.1.253 is correct - that's the latest one available and what we ship.

rk
391 post(s)
#19-Jun-20 11:37

where filegdbapi.dll

finds files in PATH

I just learned that 'where' has /Recursive option (with starting point). Even a bit easier than 'dir /b /s', I think.

where /R c:\ filegdbapi.dll

- takes time

where /R "c:\Program Files" filegdbapi.dll

- takes less time

adamw


9,283 post(s)
#19-Jun-20 11:40

Yes, that's even better.

adamw


9,283 post(s)
#22-Jun-20 09:09

The issue might be related to the outdated versions of the Visual C++ runtime libraries.

Please see this post with instructions on what to do in a different thread that also discusses GDB.

Corentin70 post(s)
#22-Jun-20 16:01

It worked!

I downloaded the VC++ runtime libraries and it worked

Thank you very much

Now I have another issue : I don't succeed in loading mdb files. I have 2 or 3 of these file and I can open them in Excel, so I guess I will simply export them from excel to csv and import them back in M9

Here is what my log says when I try to import the mdb (through import or create new data source)

2020-06-22 10:57:39 *** (root)::[Data Source] Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:57:39 *** (root)::[Data Source] Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:57:39 *** (root)::[Data Source] Failed to connect (tried ACE16, ACE15, ACE14, ACE12, Jet4, Jet3.51, MSDASQL.1).

2020-06-22 10:57:44  -- (root)::[Data Source] Re-establishing connection.

2020-06-22 10:57:44 *** (root)::[Data Source] Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:57:44 *** (root)::[Data Source] Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:57:44 *** (root)::[Data Source] Failed to connect (tried ACE16, ACE15, ACE14, ACE12, Jet4, Jet3.51, MSDASQL.1).

2020-06-22 10:58:11 *** (import) Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:58:11 *** (import) Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 10:58:11 *** (import) Failed to connect (tried ACE16, ACE15, ACE14, ACE12, Jet4, Jet3.51, MSDASQL.1).

2020-06-22 10:58:11  -- Import: D:\2 - Affaires\40 2020-010 Peru\INEI\VIVIENDAS_INEI2017\12_JUNIN\12_JUNIN.mdb (0.000 sec)

adamw


9,283 post(s)
#22-Jun-20 16:09

Happy to hear GDB now works.

Regarding MDB, the log window shows that Manifold tried looking for multiple different providers and found none (MSDASQL was the last resort which also failed). Install Access Database Engine from Microsoft and try again. I think this is the latest version:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

If you are using a 32-bit version of Microsoft Office and try installing the 64-bit version of the Access Database Engine, it might complain about the incompatibility - in this case it is safest to install the 32-bit version of the engine and use it from the 32-bit version of Manifold.

Corentin70 post(s)
#22-Jun-20 18:25

Thank you for the link, it is still not working but I guess I am getting closer :

Now I see the pop-up windows showing that M9 tries to import data but it disappears instantly and at the end I still don't success to import my mdb database

here is the log window

2020-06-22 13:21:35 *** (import) Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 13:21:35 *** (import) Provider=MSDASQL.1;... SQLSTATE: IM002. [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié

2020-06-22 13:21:35 *** (import) Failed to connect (tried ACE16, ACE15, ACE14, ACE12, Jet4, Jet3.51, MSDASQL.1).

2020-06-22 13:21:35 -- Import: D:\2 - Affaires\40 2020-010 Peru\INEI\VIVIENDAS_INEI2017\05_AYACUCHO\05 AYACUCHO.mdb (0.899 sec)

By the way I don't get either to import xls or xlsx files.

Dimitri

6,064 post(s)
#22-Jun-20 18:34

Read this link, and then launch Manifold in 32-bit mode and try mdb, xls, xlsx. Does that work?

Corentin70 post(s)
#22-Jun-20 18:42

It worked! Both mdb & xls imports

Now I remmember reading about this 32-64bit Manifold mode regarding office import...

Could it be possible in the log window to remind the user about this 32-64bit issue?

Thank you for your help, now all imports are fixed I can analyse the data my client sent to me :)

adamw


9,283 post(s)
#23-Jun-20 07:23

We don't suggest trying to connect in 32-bit mode if an attempt to connect in 64-bit mode fails because it is very hard to determine whether switching to 32-bit mode would help.

Happy to hear MDB / XLS is now working too.

Manifold User Community Use Agreement Copyright (C) 2007-2019 Manifold Software Limited. All rights reserved.