Giter Club home page Giter Club logo

arturasn / mdb2sqlite Goto Github PK

View Code? Open in Web Editor NEW
98.0 7.0 27.0 182.44 MB

Conversion tool used to convert microsoft access database to sqlite.

License: MIT License

C 14.81% C++ 64.68% Shell 1.53% Makefile 6.46% Python 0.23% XSLT 0.05% AppleScript 0.02% Batchfile 0.02% Perl 0.02% Inno Setup 0.01% Module Management System 0.38% HTML 0.88% CSS 0.01% JavaScript 0.01% Objective-C 9.34% TeX 0.01% Lua 0.01% Objective-C++ 1.46% CMake 0.07% Assembly 0.03%
access to sqlite mdb wxwidgets microsoft ms-access ms-access-database sqlite-database sqlite3

mdb2sqlite's Introduction

mdb2sqlite

mdb2sqlite is a simple tool with an objective to simplify Microsoft Access database conversion to SQLite.

Features

Abillity to transfer:

  • Tables
  • Fields
  • Field Types
    • TEXT
    • REAL
    • INTEGER
    • BLOB
  • Records
  • Relationships(MS Accces)/Triggers(SQLite)
  • Indexes
  • Indexes properties
    • UNIQUE
    • COLLATE NO CASE
  • Field comments
  • Constraints
    • PRIMARY KEY
    • FOREIGN KEY
    • NOT NULL
    • AUTOINCREMENT
    • DEFAULT
    • UNIQUE
    • COLLATE NO CASE

Additional attributes:

  • Multiple primary key support
  • Trim text values - Trim spaces from data from the beggining and end of the record.
  • Reserved key word list - Used to generate warnings if SQLite keywords are used in transferable data thus notifying users of pottencialy uncorrect locations.
  • Foreign key both primary fields - If this element is used FOREIGN KEY is not created if both keys in the relationship are PRIMARY KEYS.
  • SQLite SQL statement dump to a text file.

Colourful log:

  • All transfers display
  • Warnings display
  • Errors display

Screenshoots

Alt text Alt text

Compiling

To build the project yourself you have to build wxWidgets for your appropriate toolset and then generate the project using CMake:

  1. Browse to mdb2sqlite/wxwidgets/build/msw.
  2. Choose the appropriate solution file for your target toolset.
  3. Build your target configuration DLL Debug/DLL Release.
  4. Generate mdb2sqlite project using CMake selecting the required toolset.

Additional notes

Does not work if database is password protected

License

mdb2sqlite is MIT licensed.

mdb2sqlite's People

Contributors

arturasn avatar m7mdyahia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mdb2sqlite's Issues

cannot include setup.h

I just pulled down the project and just tried to build under VS 2013 and it is complaining about not finding "wx/setup.h' in the platform.h when compiling. Right above it gets the compiler.h, but there is no setup.h in the directory directly, but looks like there are ones in each of the platforms. Figure there is simple I am missing.

Thanks

Skip `main.MSys*`

I'm seeing errors for system tables. I wouldn't want to convert these tables.

We should skip main.MSys*

no such table: main.MSysNavPaneGroupCategories 
CREATE TRIGGER MSysNavPaneGroupCategoriesMSysNavPaneGroupsDelete AFTER DELETE ON MSysNavPaneGroupCategories FOR EACH ROW BEGIN DELETE FROM MSysNavPaneGroups WHERE GroupCategoryID = OLD.Id; END; 
no such table: main.MSysNavPaneGroups 
CREATE TRIGGER MSysNavPaneGroupsMSysNavPaneGroupToObjectsDelete AFTER DELETE ON MSysNavPaneGroups FOR EACH ROW BEGIN DELETE FROM MSysNavPaneGroupToObjects WHERE GroupID = OLD.Id; END; 
no such table: main.MSysNavPaneGroupCategories 
CREATE TRIGGER MSysNavPaneGroupCategoriesMSysNavPaneGroupsUpdate AFTER UPDATE OF Id ON MSysNavPaneGroupCategories BEGIN UPDATE MSysNavPaneGroups SET GroupCategoryID = new.Id WHERE GroupCategoryID = OLD.Id; END; 
no such table: main.MSysNavPaneGroups 
CREATE TRIGGER MSysNavPaneGroupsMSysNavPaneGroupToObjectsUpdate AFTER UPDATE OF Id ON MSysNavPaneGroups BEGIN UPDATE MSysNavPaneGroupToObjects SET GroupID = new.Id WHERE GroupID = OLD.Id; END; 

relationship one to one is missing

If I create relationship one to one for primary key in ms access then it is not converted to sqlite db.
I have two tables t_device and t_device_data_last.
There are primary keys:
t_device.id
t_device_data_last.deviceId
and it has relationship one-to-one.

detail from ms access:
Relationships
t_devicet_device_data_last
t_device t_device_data_last
id 1 1 deviceId

              Attributes:                Unique; Enforced; Cascade Updates; Cascade Deletes
              RelationshipType:          One-To-One

detail from sqllite (dump.txt)

CREATE TABLE t_device_data_last (deviceId REAL NOT NULL PRIMARY KEY UNIQUE,dateTime TEXT COLLATE NOCASE,temperature REAL,humidity REAL DEFAULT 0,batteryPower REAL DEFAULT 0,dateTimeInt REAL,runCnt INTEGER,restarfromZeroCnt INTEGER,lastRunCnt INTEGER,runningTime INTEGER,pressure REAL DEFAULT 0,co2 INTEGER DEFAULT 0,tvoc INTEGER DEFAULT 0,baseLineReg INTEGER DEFAULT 0,current INTEGER DEFAULT 0 /*current in micro ampere */,voltage INTEGER DEFAULT 0 /*voltage */);

there is missing FOREIGN KEY(deviceId) REFERENCES t_device(id) in dump.txt for CREATE TABLE of t_device_data_last table.

The table t_device_data_last is created before t_device.
How is check which table should be created first? Is it important during conversion?

Linux release?

Hi there,

thanks for your contrib, it is really needed. I just used Easysoft odbc trail driver to do conversion. Prior that used Jackcess.

Is there any possibility for Linux distro release or some "how to"? Also, since only using Linux, and can't try Win version atm, is there a command line option?

Cheers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.