himselfv / jet-tool

MS Jet database schema export/SQL execution tool
21 stars 3 forks source link

Unicode support missing #15

Closed darkstar closed 6 months ago

darkstar commented 1 year ago

Databases that contain unicode text are not exported correctly. The resulting SQL file contains only ??? instead of the correct characters

himselfv commented 7 months ago

Does this happen on latest versions? https://github.com/himselfv/jet-tool/releases/tag/0.6b Please give some specifics (e.g. minimal example db + what commands you run).

darkstar commented 7 months ago

No idea, I cannot get the tool to run anymore. I keep getting EOleException: Provider cannot be found. It may not be properly installed(0x800A0E7A) errors when trying a simple jet-tool -f ... -tables invocation

Using the engine parameters I have gotten this far but was unsuccessful afterwards:

k:\db>jet dump --accdb -f tdc.accdb --tables TDC --oledb-eng Microsoft.Jet.OLEDB.4.0
/* Access SQL export data follows. Auto-generated. */

/* Tables */
DROP TABLE [TDC] /**WEAK**/;
CREATE TABLE [TDC] (
EOleSysError: Class not registered, ClassID: {CD7791B9-43FD-42C5-AE42-8DD2811F0419}

Something is broken with the autodetection of installed engines, I have no clue maybe because I have a newer version of Access installed now.

I have found a different solution (using Python's PyPyODBC) that works out of the box for me so this issue can be closed..

Some of the commands I tried below

k:\db>jet dump --accdb -f tdc.accdb --tables tdc --oledb-eng Microsoft.ACE.OLEDB.12.0
EOleException: Provider cannot be found. It may not be properly installed(0x800A0E7A)

k:\db>jet dump --accdb -f tdc.accdb --tables tdc --oledb-eng Microsoft.ACE.OLEDB.16.0
EOleException: Provider cannot be found. It may not be properly installed(0x800A0E7A)

k:\db>jet dump --accdb -f tdc.accdb --tables tdc --dao-eng DAO.Engine.36
EOleException: Provider cannot be found. It may not be properly installed(0x800A0E7A)

k:\db>jet dump --accdb -f tdc.accdb --tables tdc --dao-eng DAO.Engine.120
EOleException: Provider cannot be found. It may not be properly installed(0x800A0E7A)

k:\db>jet dump --accdb -f tdc.accdb --tables TDC --oledb-eng Microsoft.Jet.OLEDB.4.0 --dao-eng DAO.Engine.120
/* Access SQL export data follows. Auto-generated. */

/* Tables */
DROP TABLE [TDC] /**WEAK**/;
CREATE TABLE [TDC] (
Trying class DAO.Engine.120... not found.
Exception: Cannot find DAO provider with ProgID=DAO.Engine.120

k:\db>jet dump --accdb -f tdc.accdb --tables TDC --oledb-eng Microsoft.Jet.OLEDB.4.0 --dao-eng DAO.Engine.36
/* Access SQL export data follows. Auto-generated. */

/* Tables */
DROP TABLE [TDC] /**WEAK**/;
CREATE TABLE [TDC] (
Trying class DAO.Engine.36... not found.
Exception: Cannot find DAO provider with ProgID=DAO.Engine.36

k:\db>jet dump --accdb -f tdc.accdb --tables TDC --oledb-eng Microsoft.Jet.OLEDB.4.0 --dao-eng DAO.Engine.40
/* Access SQL export data follows. Auto-generated. */

/* Tables */
DROP TABLE [TDC] /**WEAK**/;
CREATE TABLE [TDC] (
Trying class DAO.Engine.40... not found.
Exception: Cannot find DAO provider with ProgID=DAO.Engine.40