Question

How to write *.mdb to *.Gdb


Badge +5

Hi everybody,

I have a .mdb emtpy fields. Now, I want to convert to .Gdb (point format).

I use read .mdb and writer .gdb but I don't get point file in Gdb. Could you tell me why? Thank you

I attached my workspace in the bellow:


14 replies

Userlevel 5
Badge +25

Are you sure there's data in the database? (there isn't in the template you attached)

Badge +5

Are you sure there's data in the database? (there isn't in the template you attached)

In .mdb, I create a empty fields. And I want to convert point file empty in gdb.

 

 

Userlevel 5
Badge +25
In .mdb, I create a empty fields. And I want to convert point file empty in gdb.

 

 

Okay, the fields are empty, but it also appears there's no record, no data, so that's why FME won't read anything.

 

 

If you have an MDB with a table structure you want to copy to a GDB you can add a new writer (GDB) and specify that you want to import the table definition from another dataset:

 

And then in the next screen you can select MDB format and your existing database. FME will then copy the table structure.

 

 

However, while this works, I generally prefer to set things up when I have some actual source data to work with. Or, since you're setting up the writer from scratch, just do that manually in FME (that's one of the other options when you're adding a writer)

 

 

Badge +5
Okay, the fields are empty, but it also appears there's no record, no data, so that's why FME won't read anything.

 

 

If you have an MDB with a table structure you want to copy to a GDB you can add a new writer (GDB) and specify that you want to import the table definition from another dataset:

 

And then in the next screen you can select MDB format and your existing database. FME will then copy the table structure.

 

 

However, while this works, I generally prefer to set things up when I have some actual source data to work with. Or, since you're setting up the writer from scratch, just do that manually in FME (that's one of the other options when you're adding a writer)

 

 

Yes. So the fields are empty, FME will not read any thing.

 

 

In my case, I want to keep table structure as .mdb, and I will create point in .Gdb. So I can't use the way import table from other dataset :).

 

 

Userlevel 5
Badge +25
Yes. So the fields are empty, FME will not read any thing.

 

 

In my case, I want to keep table structure as .mdb, and I will create point in .Gdb. So I can't use the way import table from other dataset :).

 

 

Can you try the method I described above? That shouldn't care if the table is empty or not.

 

 

And if it does complain about that, just add one record. The contents doesn't matter, since only the structure is copied.

 

 

Badge +5
Yes, so can I add new record automatically in .mdb table? because it's not important. My target keeps structure table.

 

 

Badge +5
Can you try the method I described above? That shouldn't care if the table is empty or not.

 

 

And if it does complain about that, just add one record. The contents doesn't matter, since only the structure is copied.

 

 

Yes, so can I add new record automatically in .mdb table? because it's not important. My target keeps structure table.

 

 

Userlevel 5
Badge +25
Yes, so can I add new record automatically in .mdb table? because it's not important. My target keeps structure table.

 

 

You'll have to do that manually.

 

 

Badge +5
You'll have to do that manually.

 

 

Yes. Thank you so much :).

 

 

Userlevel 2
Badge +17

Hi @hoa_le, as @redgeographics mentioned, at least a single feature is required to be written to create a new dataset/feature type. Fortunately, the File Geodatabase format supports DELETE operation, so you can write a feature temporarily into a feature class with a FeatureWriter then delete every feature from the feature class with another FeatureWriter. In the first FeatureWriter, the schema of the feature class can be configured dynamically based on the MDB table schema.

Firstry add the MDB reader as a Workspace Resource to the workspace (Workbench Menu: Readers > Add Reader as Resource), then create the workflow like these screenshots.

The 1st FeatureWriter Parameters: Create a feature class with Dynamic Schema based on the MDB.

The 2nd FeatureWriter Parameters: Delete every feature from the destination feature class.

Badge +7

Hi @hoa_le, as @redgeographics mentioned, at least a single feature is required to be written to create a new dataset/feature type. Fortunately, the File Geodatabase format supports DELETE operation, so you can write a feature temporarily into a feature class with a FeatureWriter then delete every feature from the feature class with another FeatureWriter. In the first FeatureWriter, the schema of the feature class can be configured dynamically based on the MDB table schema.

Firstry add the MDB reader as a Workspace Resource to the workspace (Workbench Menu: Readers > Add Reader as Resource), then create the workflow like these screenshots.

The 1st FeatureWriter Parameters: Create a feature class with Dynamic Schema based on the MDB.

The 2nd FeatureWriter Parameters: Delete every feature from the destination feature class.

Hmm. This might be the solution I'm looking for a reusable CSV log. I want to log issues to a CSV file then email it to the customer at the end of the process. However if there are no issues, nothing will go to the CSV Writer, so any issues logged on the previous run won't be removed. I had thought about having an empty template CSV and overwriting the live one using the FileCopy Writer, but this might be a more elegant way of doing it.

 

Userlevel 2
Badge +17
Hmm. This might be the solution I'm looking for a reusable CSV log. I want to log issues to a CSV file then email it to the customer at the end of the process. However if there are no issues, nothing will go to the CSV Writer, so any issues logged on the previous run won't be removed. I had thought about having an empty template CSV and overwriting the live one using the FileCopy Writer, but this might be a more elegant way of doing it.

 

Hi @tim_wood, unfortunately the CSV format doesn't support DELETE operation, so I don't think this method cannot be applied to a CSV dataset.

 

In your case, the NoFeaturesTester from Hub might be helpful.

 

Userlevel 2
Badge +17

Hi @hoa_le, as @redgeographics mentioned, at least a single feature is required to be written to create a new dataset/feature type. Fortunately, the File Geodatabase format supports DELETE operation, so you can write a feature temporarily into a feature class with a FeatureWriter then delete every feature from the feature class with another FeatureWriter. In the first FeatureWriter, the schema of the feature class can be configured dynamically based on the MDB table schema.

Firstry add the MDB reader as a Workspace Resource to the workspace (Workbench Menu: Readers > Add Reader as Resource), then create the workflow like these screenshots.

The 1st FeatureWriter Parameters: Create a feature class with Dynamic Schema based on the MDB.

The 2nd FeatureWriter Parameters: Delete every feature from the destination feature class.

If you explicitly set "geodb_point" to the Geometry parameter in the FILEGDB writer feature type and write a feature having a geometry other than Point (e.g. Polygon), the writer creates a new feature class but writes no feature. The Dynamic Schema configuration is the same as the first FeatureWriter in the previous workflow.

 

Simpler and works as expected in FME 2017, but I don't know if it is guaranteed that this method works in the future as well.

 

 

Badge +5

Hi @hoa_le, as @redgeographics mentioned, at least a single feature is required to be written to create a new dataset/feature type. Fortunately, the File Geodatabase format supports DELETE operation, so you can write a feature temporarily into a feature class with a FeatureWriter then delete every feature from the feature class with another FeatureWriter. In the first FeatureWriter, the schema of the feature class can be configured dynamically based on the MDB table schema.

Firstry add the MDB reader as a Workspace Resource to the workspace (Workbench Menu: Readers > Add Reader as Resource), then create the workflow like these screenshots.

The 1st FeatureWriter Parameters: Create a feature class with Dynamic Schema based on the MDB.

The 2nd FeatureWriter Parameters: Delete every feature from the destination feature class.

Dear Takashi,

 

Thank you so much. But I have a quesiton, the output file is not point type, it's only table in in Gdb. My target is point. I attached my workspace. create-gdb-from-tbl.fmw

 

Reply