Home | Download | Quick sample | Tutorial (4) | Faq (36) | Forum | Our customers

QxOrm >> Download |
Current version : | QxOrm 1.3.2 - QxOrm library online documentation
| QxEntityEditor 1.1.8

QxOrm is a C++ library available under a dual license : GNU/GPLv3 license : open-source and free (to develop an open-source project or to evaluate QxOrm library) ; Proprietary license to distribute an application based on QxOrm library without any restrictions of GNU/GPLv3 license.
| Download QxOrm 1.3.2 (source + test + documentation) This version has been tested with Visual Studio 2008, 2010 and 2012 on Windows, GCC on Linux and Mac OS X, MinGW on Windows, and Clang on Mac OS X.
| QxOrm library has been accepted into the Qt Ambassador Program
QxEntityEditor is a graphic editor for QxOrm library : QxEntityEditor provides a graphic way to manage the data model. QxEntityEditor is multi-platform (available for Windows, Linux and Mac OS X) and generate native code for all environments : desktop (Windows, Linux, Mac OS X), embedded and mobile (Android, iOS, Raspberry Pi, etc.).
| QxEntityEditor 1.1.8 - Windows 32 bits |  |  | QxEntityEditor 1.1.8 - Windows 64 bits |  |  | QxEntityEditor 1.1.8 - Windows XP
| QxEntityEditor 1.1.8 - Windows 32 bits (portable) |  |  | QxEntityEditor 1.1.8 - Windows 64 bits (portable) |  |  | QxEntityEditor 1.1.8 - Windows XP (portable)
| QxEntityEditor 1.1.8 - Linux 32 bits |  |  | QxEntityEditor 1.1.8 - Linux 64 bits
| QxEntityEditor 1.1.8 - Mac OS X
Note : by default, QxEntityEditor application is limited to 5 entities per project. To get a license key and create unlimited entities per project, please contact us using this e-mail : contact@qxorm.com. A presentation video of QxEntityEditor application is available. Price of a QxEntityEditor license key : 300€ (per developer, 12 months of free updates). Before installing and compiling QxOrm, you need the following libraries : boost (from version 1.38) and Qt (from version 4.5.0) :
| boost : many of boost's founders are on the C++ standard committee and several boost libraries have been accepted for incorporation into C++1x (new standard for the C++ programming language). The boost's libraries are aimed at a wide range of C++ users and application domains. QxOrm uses the following features of boost : smart_pointer, serialization, type_traits, multi_index_container, unordered_container, any, tuple, foreach, function. It is recommended to install the latest version of boost available at the following address : http://www.boost.org/
| Qt : cross-platform application development framework : ihm (QtGui), network (QtNetwork), xml (QtXml), database (QtSql)... Qt provides excellent support and documentation. Using Qt, you can write simple and powerful C++ code. Qt is produced by Digia's Qt Development Frameworks division and is available under LGPL license. QxOrm is compatible with a lot of Qt's objects : QObject, QString, QDate, QTime, QDateTime, QList, QHash, QSharedPointer, QScopedPointer... It is recommended to install the latest version of Qt available at the following address : http://www.qt.io/
QxOrm library history :
Changes in version 1.3.2: - Support C++11 types (need to set compilation options in QxOrm.pri config file to enable these features) - With _QX_CPP_11_SMART_PTR compilation option : std::unique_ptr, std::shared_ptr, std::weak_ptr - With _QX_CPP_11_CONTAINER compilation option : std::unordered_map, std::unordered_set, std::unordered_multimap, std::unordered_multiset - With _QX_CPP_11_TUPLE compilation option : std::tuple Changes in version 1.3.1: - New class qx::QxModelService<T, S> in QxModelView module to connect a Qt model to services to execute client-server requests (can be used with QML and QtWidgets views) - Add some useful methods to qx::IxModel class and fix several issues with the QxModelView module - Support last version of MinGW with large precompiled header bug : new compilation option _QX_NO_PRECOMPILED_HEADER (to enable in QxOrm.pri file) - Fix issue when loading several shared libraries on Windows with services registered in QxService module - Fix the qx::QxSqlQuery serialization process used by QxService module to send requests over network - Fix an issue with qx::QxCollection<Key, Value> class when inserting an item at last position Changes in version 1.2.9: - Improve nested models in QxModelView module to be able to use several relationships levels in QML Changes in version 1.2.8: - New function qx::model_view::create_nested_model (QxModelView module) used by QxEntityEditor to manage complex data structure to work with relationships in QML views and Qt model/view architecture - New section in the QxOrm.pri file with some tips to reduce output binaries size - Fix the call of triggers to have the inserted ID inside the trigger function with PostgreSQL Changes in version 1.2.7: - New module QxModelView : now, all classes registered into QxOrm context can be used with Qt model/view architecture (Qt widgets and/or QML views) - qx::IxModel interface provides an easy way to work on QML with QxOrm library and interact with databases - For more details about the new module QxModelView, goto the FAQ : 'How to use QxModelView module to interact with Qt model/view architecture (Qt widgets and/or QML views) ?' - New function qx::dao::save_with_relation_recursive(), useful to save a full tree structure for example - Remove the dependency on the STL compatibility functions in Qt (QT_NO_STL), which may not be available (thanks to KDE Plasma Media Center team for the patch) - Support database table defined into a schema (using qx::IxDataMember::setName() function) Changes in version 1.2.6: - First version full compatible with QxEntityEditor application : the graphic editor for QxOrm library ! - For more details about QxEntityEditor, go to QxOrm website : http://www.qxorm.com/ - Thanks to the recent release of Qt 5.2, QxOrm library can now be used on Android and iOS - Improve relationships and triggers engine - Triggers onBeforeFetch() and onAfterFetch() called when fetching relationships - Fix release mode detection during compilation : should improve performance on some environments - Add serialization for QSqlError, qx::QxSqlQuery, qx::QxInvalidValue and qx::QxInvalidValueX classes Changes in version 1.2.5: - New license : go to download page of QxOrm website for more details - Support Qt5 - New compiler supported : Clang (tested on Mac OS X) - Now each QxOrm version will be tested in 32-bit and 64-bit mode - Improve QxOrm introspection engine : possibility to register static class methods - Improve QxService module : now it's easy to add an authentication process on server side - New class qx::exception to get error code + error description with services methods throwing an exception - New settings available in QxOrm.pri config file (whithout changing QxConfig.h file) - Possibility to implement specifics database SQL functions overriding qx_query class - Fix an issue when fetching multiple levels of relationship and NULL pointers - Fix a bug with MS SQL Server database and update queries using auto-increment id Changes in version 1.2.4: - New relationship engine to fetch easily many levels of relationships per query - For more details about this new engine, goto the FAQ : 'How to use relationship engine to fetch datas from many tables ?' - Add 2 functions : qx::dao::execute_query and qx::dao::call_query to call a stored procedure or a custom SQL query - For more details about this new feature, goto the FAQ : 'How to execute a stored procedure or a custom SQL query ?' - Add support for boost::optional type to manage NULL database value without using QVariant type - New class : qx::QxDaoAsync to make easier to execute queries in asynchronous way (multi-thread) - For more details about this new class, goto the FAQ : 'How to use qx::QxDaoAsync class to execute queries in asynchronous way (multi-thread) ?' Changes in version 1.2.3: - New interface 'qx::IxPersistable' (abstract class) to simplify polymorphism using QxOrm library - For more details about this new interface, goto the FAQ : 'How to use qx::IxPersistable interface ?' - New methods into 'qx::IxCollection' interface to iterate over each items without knowing its type - New option into 'QxOrm.pri' file to build QxOrm library statically (see '_QX_STATIC_BUILD' option) - New triggers : 'qx::dao::on_before_fetch' and 'qx::dao::on_after_fetch' (for more details, goto the FAQ : 'How to define a Trigger with QxOrm ?') - Add 'std::type_info' class information to introspection engine - Some minor bugs fixed ('qx::dao::sql_error' exception message, SQL query column alias, mutex, etc.) Changes in version 1.2.2: - New module to provide a validation engine : QxValidator module - For more details about QxValidator module, goto the FAQ of QxOrm library : 'How to use QxValidator module to validate automatically an instance ?' - Fix last insert ID with PostgreSQL using 'RETURNING' keyword : fetch inserted ID instead of OID - Improve SQL generator providing the good SQL type for all databases - Add support for special database keywords using '[', ']' and '"' characters Changes in version 1.2.1: - Improve 'qx::QxSqlQuery' class : new engine to build queries without writing SQL, for more details, see the FAQ 'How to build a query without writing SQL with the class qx::QxSqlQuery ?' - Improve 'qx::QxSession' class : provide persistent methods (CRUD) without using 'qx::dao::xxx' functions, for more details, see the FAQ 'How to use a session (qx::QxSession class) to manage automatically database transactions (using C++ RAII) ?' - Implement 'repository' pattern to provide a common interface for persistent methods (CRUD) with 3 new classes : 'qx::IxRepository', 'qx::QxRepository<T>' and 'qx::QxRepositoryX' - Possibility to serialize a QVariant 'UserType' with serialization engine of QxOrm library - Improve thread-safe 'qx::cache' : add insertion date-time into the cache to verify that an element must be updated or not, for more details, see the FAQ 'How to use the cache (functions into namespace qx::cache) of QxOrm library ?' - FAQ updated on QxOrm website with now 28 questions and answers Changes in version 1.1.9: - Possibility to register automatically Qt meta-properties (using Q_PROPERTY macro) to QxOrm context without writing mapping function per class (void qx::register_class<T>()) - Strong integration with Qt introspection/moc engine : for more details about this new feature, goto the FAQ 'How to register automatically Qt meta-properties to QxOrm context ?' - Improve introspection/reflection engine : see the FAQ (How to use introspection engine (or reflection engine) of QxOrm library ?) for more details - Possibility to add meta-data (using a property bag) to introspection engine : see 'IxClass', 'IxDataMember' and 'IxFunction' classes for more details - Add function 'qx::QxClassX::dumpSqlSchema()' to explain how to create your own SQL schema based on C++ classes - New class 'qx::QxSimpleCrypt' to provide encryption/decryption (thanks very much to Andre Somers) : so it's now possible to store encrypted data into database without using an external library - QxService module : new feature to encrypt/decrypt data before transfering it over network Changes in version 1.1.8: - QxOrm library can now be used on Mac (thanks very much to Dominique Billet) : see 'osx_build_all_debug.sh' and 'osx_build_all_release.sh' scripts to build QxOrm library and all samples in './test/' directory - Add 'qx::QxSession' class : define a session to manage automatically database transactions (using C++ RAII), see the FAQ for more details - Add 'qx::QxDateNeutral', 'qx::QxTimeNeutral' and 'qx::QxDateTimeNeutral' classes : helper classes to store date-time value into database under neutral format => cross database compatibility Changes in version 1.1.7: - Add soft delete behavior : see the FAQ (How to define a soft delete behavior ?) for more details about this new feature - Add functions into namespace 'qx::dao' to update an element with a SQL condition : update_by_query, update_optimized_by_query, etc. - Fix a bug when QVariant type is used for a property of a persistent class : so, it's now possible to insert NULL value into database Changes in version 1.1.6: - QxOrm library online documentation available : 'http://www.qxorm.com/doxygen/index.html' - Possibility to disable QtGui dependency using compilation option in 'QxConfig.h' file : _QX_ENABLE_QT_GUI_DEPENDENCY - Possibility to disable QtNetwork dependency (so QxService module too) using compilation option in 'QxConfig.h' file : _QX_ENABLE_QT_NETWORK_DEPENDENCY - Provide a new macro to register abstract class into QxOrm context : QX_REGISTER_ABSTRACT_CLASS() Changes in version 1.1.5: - New feature available : 'QxService' module to create C++ application server - 'QxService' provides an easy and powerful way to create services and to transfer data over network - New tutorial available to explain how 'QxService' module works - New sample available at './test/qxClientServer' directory - QxOrm can be built with 'CONFIG += no_keywords' flag in '*.pro' files - Bug fix with 'qx::dao::create_table<>' function and relation 'many-to-many' - QxOrm should now build fine with GCC <= 4.2 Changes in version 1.1.4: - New parameter in functions 'qx::dao::fetch_by_id', 'qx::dao::fetch_all', 'qx::dao::fetch_by_query' and 'qx::dao::update' to define a list of properties to fetch/update (by default, all properties are fetched/updated) - Support multi-columns primary key (composite key) : see sample './test/qxBlogCompositeKey/' - Improve strategy of inheritance : QxOrm supports 'Concrete Table Inheritance' strategy ('Concrete Table Inheritance' becomes default strategy) - New smart-pointer 'qx::dao::ptr<T>' based on Qt 'QSharedPointer<T>' to provide 2 new features : 'is dirty' and 'update optimized' - 'qx::dao::ptr<T>' can be used with a simple object and with many containers (stl, boost, Qt and 'qx::QxCollection' containers) - 'qx::dao::ptr<T>' keeps original values from database and provides a 'isDirty()' method to retrieve all properties changed - 'qx::dao::update_optimized' must be used with 'qx::dao::ptr<T>' to save into database only properties changed Changes in version 1.1.3: - This version works fine with MinGW on Windows Changes in version 1.1.2: - License LGPL - Fix compilation problems on Linux and boost > 1.38 - Fix sql query with MySql database - Disable assert when qx::dao functions return an error Changes in version 1.1.1: - This version supports Visual Studio 2010 Changes in version 1.1.0: - First release
QxEntityEditor application history :
Changes in version QxEntityEditor 1.1.8: - Improve import plugins : reduce import process time : now, you can import hundred of entities in few seconds into a QxEntityEditor project - Relationship n-1 : possibility to define a database column name different than the relationship name - New file qxBlogExec.zip in the ./samples/ directory of QxEntityEditor package : this is a C++/Qt example project which depends on the qxBlog.qxee generated files - Improve import by ODBC plugin screen : new schema/namespace level in the list of tables/views treeview - Fix a performance issue to load large diagram with new style to draw relationships : you can now load quickly a project with hundred of entities - Add new C++11 types to manage relationships, decoration, collection (std::shared_ptr, std::unordered_map and std::unordered_set) : C++11 features must be enabled in QxOrm.pri config file to use these classes - Import process more permissive : possibility to import tables without primary key and tables without column Changes in version QxEntityEditor 1.1.7: - New Navigator window (under project treeview) : useful to navigate over large diagram - New way to draw relationships (orthogonal lines between 2 entities) + display the relationship type on each side (there is an option to use the old drawing style from previous version) - Possibility to define a background color by namespace : useful to group all entities in the diagram associated to a same namespace - New feature to customize entities/enumerations/notes colors at several levels - Define items colors at project level (menu Tools >> Project settings >> Colors tab) - Define items colors at namespace level (right-click on the diagram >> Define colors by namespace) - Define colors at item level : right-click on an item (entity, enumeration or comment) >> Define item colors - New action to organize automatically the diagram layout, useful after an import process for example (menu View >> Organize diagram layout) - Improve the DDL SQL export plugin : new option to export relationships as foreign keys constraints in database - Support the new compilation option _QX_NO_PRECOMPILED_HEADER of QxOrm library (workaround for a known bug of recent versions of MinGW on Windows and large precompiled header) - Import database by ODBC plugin : fix the import from MS SQL Server database when tables are not located in the default schema (dbo) - QxEntityEditor Mac OS X version : fix an issue to load the QxEEPrinter plugin - Export plugin to C++ model/view project : new option to generate models based on the new QxOrm library class qx::QxModelService<T, S> (models based on services to execute client-server requests) Changes in version QxEntityEditor 1.1.6: - New javascript engine to customize the C++ and DDL SQL export process writing your own custom script - Integrated debugger to debug your own custom javascript files (for example, putting a breakpoint or logging some traces) - New plugin to print the entities diagram as a PNG image file and PDF file - New property parameter UNIQUE (in property params window) used by the DDL SQL generator to create the database schema - Improve nested models in QxModelView module to be able to use several relationships levels in QML - Possibility to change the order in the list of properties and list of relationships of an entity - Change encoding of generated files : now files are UTF-8 - Possibility to put a relative path to the QxEntityEditor project file (*.qxee file) in each plugin location settings Changes in version QxEntityEditor 1.1.5: - New C++ model/view export plugin to manage complex data structure to work with relationships in QML views and Qt model/view architecture (using QxModelView module of QxOrm library) - Now, with this new export plugin, working on QML with C++ entities has never been so easy ! - New function, menu "Tools >> Plugins scripts", to define your own custom scripts before/after a plugin execution - New command line parameter --log_sql to trace all SQL queries executed by QxEntityEditor : a QxEntityEditor project file (*.qxee) is just a SQLite database, so it's easy to write your own script to customize some default behaviour - New option in the C++ export plugin to generate or not the custom directory with all custom files for each entity - Scrollbar available in the entities viewer Changes in version QxEntityEditor 1.1.4: - Improve import by ODBC plugin to manage relationship, schema and composite key for SQLite, MySQL, PostgreSQL, Oracle and MS SQL Server databases - New import from SQLite plugin to import SQLite database structure into QxEntityEditor project without having to create an ODBC DSN connexion - Improve C++ export plugin : add a set of useful methods in generated classes + option to manage relative path to QxOrm library - New menu to rename a namespace (move all entities to another namespace) and delete a list of entities by namespace - Fix a bug when executing QxEntityEditor in command line (no GUI) - Add a viewer mode to open a QxEntityEditor project with unlimited entities count without having a license key (read-only mode) Changes in version QxEntityEditor 1.1.3 (first official release): - New plugin to transfer your data model over network and create quickly client/server applications, using QxService module - New options to define entity, enum and comment width in entities viewer Changes in version QxEntityEditor 1.1.2 (BETA): - New plugin to generate DDL SQL script (database schema) for SQLite, MySQL, PostgreSQL, Oracle and MS SQL Server databases - The new DDL SQL plugin manages automatically schema evolution for each project version (ALTER TABLE, ADD COLUMN, DROP INDEX, etc.) - Add post-it or comments in the entities viewer - Option to display or not property type in the entities viewer Changes in version QxEntityEditor 1.1.1 (BETA): - First BETA version of QxEntityEditor application - Provide a graphic way to manage the data model for QxOrm library - Multi-platform (available for Windows, Linux and Mac OS X) and generate native code for all environments : desktop (Windows, Linux, Mac OS X), embedded and mobile (Android, iOS, Raspberry Pi, etc.) - Based on plugins and provides many ways to import/export the data model - Generate C++ persistent classes automatically (registered into QxOrm context)

| © 2015 Lionel Marty - contact@qxorm.com |