Accueil | Téléchargement | Exemple rapide | Tutoriel (4) | Faq (36) | Forum | Nos clients

QxOrm >> Téléchargement |
Version courante : | QxOrm 1.3.2 - documentation en ligne de la bibliothèque QxOrm
| QxEntityEditor 1.1.8

QxOrm est une bibliothèque C++ disponible sous une double licence : licence GNU/GPLv3 : open-source et gratuite (idéale pour développer un projet open-source ou pour une évaluation de la bibliothèque QxOrm) ; licence propriétaire permettant de distribuer une application basée sur la bibliothèque QxOrm sans les restrictions de la licence GNU/GPLv3.
| Télécharger QxOrm version 1.3.2 (source + test + documentation) Cette version est compatible avec Visual Studio 2008, 2010 et 2012 (Windows), GCC (Linux et Mac OS X), MinGW (Windows) et Clang (Mac OS X).
| QxOrm library has been accepted into the Qt Ambassador Program
QxEntityEditor est un éditeur graphique pour la bibliothèque QxOrm : QxEntityEditor permet de gérer graphiquement le modèle d'entités. QxEntityEditor est multi-plateforme (disponible pour Windows, Linux et Mac OS X) et génère du code natif pour tous les environnements : bureau (Windows, Linux, Mac OS X), embarqué et 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
Remarque : par défaut, l'application QxEntityEditor est limitée à 5 entités par projet. Pour obtenir une clé de licence et ainsi créer un nombre illimité d'entités par projet, vous pouvez nous contacter à l'adresse suivante : contact@qxorm.com. Une vidéo de présentation de l'application QxEntityEditor est disponible. Prix d'une licence QxEntityEditor : 300€ (par développeur, mise à jour gratuite pendant 12 mois). QxOrm est dépendant des excellentes bibliothèques boost (compatible à partir de la version 1.38) et Qt (compatible à partir de la version 4.5.0). Vous devez donc télécharger et installer ces 2 bibliothèques avant de pouvoir utiliser QxOrm.
| boost : de nombreux modules de la bibliothèque boost font partie de la nouvelle norme C++. C'est une bibliothèque reconnue pour sa qualité, son code 'C++ moderne', sa documentation, sa portabilité, etc... QxOrm utilise les fonctionnalités suivantes de boost : smart_pointer, serialization, type_traits, multi_index_container, unordered_container, any, tuple, foreach, function. Il est conseillé d'installer et d'utiliser la dernière version de boost disponible à l'adresse suivante : http://www.boost.org/
| Qt : bibliothèque complète : IHM (QtGui), réseau (QtNetwork), XML (QtXml), base de données (QtSql), etc... La documentation est excellente et le code C++ écrit à partir de cette bibliothèque est à la fois performant et simple de compréhension. Depuis le rachat par Nokia puis Digia et sa nouvelle licence LGPL, Qt est sans contexte la bibliothèque phare du moment. QxOrm est compatible avec les principaux objets définis par Qt : QObject, QString, QDate, QTime, QDateTime, QList, QHash, QSharedPointer, QScopedPointer, etc... Il est conseillé d'installer et d'utiliser la dernière version de Qt disponible à l'adresse suivante : http://www.qt.io/
Historique des modifications de la bibliothèque QxOrm :
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
Historique des modifications de l'application QxEntityEditor :
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 |