1254 lines
87 KiB
HTML
1254 lines
87 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
||
<title>QxOrm : C++ Qt ORM Object Relational Mapping database library - QxEntityEditor : C++ Qt entities graphic editor
|
||
(data model designer and source code generator)</title>
|
||
<link rel='stylesheet' type='text/css' href='./resource/qxorm_style.css'>
|
||
<script type="text/javascript" src="./resource/jquery.min.js"></script>
|
||
<script type="text/javascript" src="./resource/qxorm_script.js"></script>
|
||
</head>
|
||
|
||
<body>
|
||
<table border="0" style="width: 80%" align="center">
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td><a href="./home.html"><img alt="QxOrm" src="./resource/logo_qxorm_and_qxee.png" align="left" border="0"></a>
|
||
</td>
|
||
<td align="right" style="vertical-align:bottom">
|
||
<div id="qx_search">
|
||
<gcse:search></gcse:search>
|
||
</div>
|
||
</td>
|
||
<td width="15"></td>
|
||
<td align="right" style="vertical-align:bottom">
|
||
<img alt="Windows" src="./resource/logo_windows.gif" width="35" height="35">
|
||
<img alt="Linux" src="./resource/logo_linux.gif" width="35" height="35">
|
||
<img alt="Macintosh" src="./resource/logo_mac.gif" width="35" height="35">
|
||
</td>
|
||
<td width="70"><img alt="C++" src="./resource/logo_cpp.gif" width="50" height="50" align="right"></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr style="width: 80%" align="center" size="1" color="#100D5A">
|
||
<table border="0" style="width: 80%" align="center">
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td align="center"><a href="./home.html" class="btn_nav">Home</a></td>
|
||
<td align="center"><a href="./download.html" class="btn_nav">Download</a></td>
|
||
<td align="center"><a href="./quick_sample.html" class="btn_nav">Quick sample</a></td>
|
||
<td align="center" onmouseover="showHideElementById('menu_tuto', true);"
|
||
onmouseout="showHideElementById('menu_tuto', false);">
|
||
<a href="./tutorial.html" class="btn_nav">Tutorial (4)</a>
|
||
<table class="table_menu_tuto">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<div id="menu_tuto" class="div_menu_tuto">
|
||
<a href="./tutorial_3.html" class="btn_sub_menu">install QxOrm</a><br />
|
||
<a href="./tutorial.html" class="btn_sub_menu">qxBlog</a><br />
|
||
<a href="./tutorial_2.html" class="btn_sub_menu">qxClientServer</a><br />
|
||
<a href="./tutorial_4.html" class="btn_sub_menu">QxEntityEditor videos</a>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
<td align="center" onmouseover="showHideElementById('menu_manual', true);"
|
||
onmouseout="showHideElementById('menu_manual', false);">
|
||
<a href="./manual.html" class="btn_nav">Manual (2)</a>
|
||
<table class="table_menu_manual">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<div id="menu_manual" class="div_menu_manual">
|
||
<a href="./manual.html" class="btn_sub_menu">QxOrm manual</a><br />
|
||
<a href="./manual_qxee.html" class="btn_sub_menu">QxEntityEditor manual</a><br />
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
<td align="center"><a href="./link.html" class="btn_nav">Forum</a></td>
|
||
<td align="center"><a href="./customer.html" class="btn_nav">Our customers</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr style="width: 80%" align="center" size="1" color="#100D5A">
|
||
<table border="0" style="width: 80%" align="center">
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td align="left" valign="top">
|
||
<font size="2" class="txt_with_shadow">QxOrm >> Download</font>
|
||
</td>
|
||
<td align="right" valign="top">
|
||
<table cellspacing="0" cellpadding="1">
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td align="right" valign="top">
|
||
<font size="2" class="txt_with_shadow">Current version : </font>
|
||
</td>
|
||
<td align="left" valign="top">
|
||
<font size="2" class="txt_with_shadow">QxOrm 1.5.0 - <a href="../doxygen/index.html"
|
||
target="_blank">QxOrm library online class documentation</a> - <a
|
||
href="https://github.com/QxOrm/QxOrm" target="_blank">GitHub</a></font>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="right" valign="top">
|
||
<font size="2" class="txt_with_shadow"></font>
|
||
</td>
|
||
<td align="left" valign="top">
|
||
<font size="2" class="txt_with_shadow">QxEntityEditor 1.2.8</font>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
<td width="10px"></td>
|
||
<td width="40px" height="30px"><a href="../qxorm_fr/download.html"><img alt="Version fran<61>aise du site"
|
||
src="./resource/FR.png" width="40" height="30" border="0"></a></td>
|
||
<td width="40px" height="30px"><a href="../qxorm_en/download.html"><img alt="Web site english version"
|
||
src="./resource/GB.png" width="40" height="30" border="0"></a></td>
|
||
<td width="40px" height="30px"><a href="http://sites.google.com/site/qxormpostgres/" target="_blank"><img alt=""
|
||
src="./resource/ES.png" width="40" height="30" border="0"></a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table border="1" frame="vsides" rules="cols" style="width: 80%" align="center" cellpadding="6" bgcolor="#F2F2F4">
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td align="justify">
|
||
<table border="0" style="width: 100%" align="center">
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td><b>QxOrm</b> is a C++ library available under a dual license :
|
||
<ul>
|
||
<li><a href="./resource/license.gpl3.txt" target="_blank">GNU/GPLv3 license</a> : open-source and
|
||
free (to develop an open-source project or to evaluate QxOrm library) ;</li>
|
||
<li><a href="./download_details.php">Proprietary license</a> to distribute an application based on
|
||
QxOrm library without any restrictions of <i>GNU/GPLv3</i> license.</li>
|
||
</ul>
|
||
<table border="0" style="width: 100%" align="center">
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td valign="middle" width="80" align="center"><a href="./download_details.php"><img
|
||
alt="Download QxOrm" src="./resource/download.jpg" width="40" height="48" border="0"></a>
|
||
</td>
|
||
<td align="justify">
|
||
<a href="./download_details.php">
|
||
<b>Download QxOrm 1.5.0 (source + test + documentation)</b></a><br>
|
||
This version has been tested with <b>Visual Studio</b> on Windows, <b>GCC</b> on Linux and Mac
|
||
OS X, <b>MinGW</b> on Windows, and <b>Clang</b> on Mac OS X : a C++11 compiler is required.
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
<hr style="width: 90%" align="center" size="1" color="#100D5A">
|
||
</td>
|
||
<td width="200" align="center" valign="top"><a href="./resource/qt_ambassador_logo.png"
|
||
target="_blank"><img alt="qt_ambassador" src="./resource/qt_ambassador_logo_150x150.png" width="150"
|
||
height="150" border="0"></a><br>
|
||
<b>
|
||
<font size="2">QxOrm library has been accepted into the <a
|
||
href="http://forum.qt.io/category/24/qt-ambassador-program" target="_blank">Qt Ambassador
|
||
Program</a></font>
|
||
</b>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p align="justify"><b>QxEntityEditor</b> is a graphic editor for <b>QxOrm</b> library : <b>QxEntityEditor</b>
|
||
provides a graphic way to manage the data model.<br>
|
||
<b>QxEntityEditor</b> is multi-platform (available for Windows, Linux and Mac OS X) and generates native
|
||
code for all environments : desktop (Windows, Linux, Mac OS X), embedded and mobile (Android, iOS, Windows
|
||
Phone, Raspberry Pi, etc.).
|
||
</p>
|
||
<p align="justify">
|
||
<table border="0" style="width: 100%" align="center">
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_win32.exe&file_desc=QxEntityEditor_1.2.8_setup_win32"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_win32.exe&file_desc=QxEntityEditor_1.2.8_setup_win32"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Windows 32 bits</b></a></td>
|
||
<td width="40"></td>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_win64.exe&file_desc=QxEntityEditor_1.2.8_setup_win64"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_win64.exe&file_desc=QxEntityEditor_1.2.8_setup_win64"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Windows 64 bits</b></a></td>
|
||
<td width="100"></td>
|
||
<!--
|
||
<td valign="middle" width="80" align="center"><a href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_winxp.exe&file_desc=QxEntityEditor_1.2.8_setup_winxp" target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32" border="0"></a></td>
|
||
<td align="justify"><a href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_setup_winxp.exe&file_desc=QxEntityEditor_1.2.8_setup_winxp" target="_blank"><b>QxEntityEditor 1.2.8 - Windows XP</b></a></td>
|
||
-->
|
||
</tr>
|
||
<tr>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_32b.zip&file_desc=QxEntityEditor_1.2.8_win_32b"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_32b.zip&file_desc=QxEntityEditor_1.2.8_win_32b"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Windows 32 bits (portable)</b></a></td>
|
||
<td width="40"></td>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_64b.zip&file_desc=QxEntityEditor_1.2.8_win_64b"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_64b.zip&file_desc=QxEntityEditor_1.2.8_win_64b"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Windows 64 bits (portable)</b></a></td>
|
||
<td width="100"></td>
|
||
<!--
|
||
<td valign="middle" width="80" align="center"><a href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_xp.zip&file_desc=QxEntityEditor_1.2.8_win_xp" target="_blank"><img alt="QxEntityEditor" src="./resource/logo_windows.gif" width="32" height="32" border="0"></a></td>
|
||
<td align="justify"><a href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_win_xp.zip&file_desc=QxEntityEditor_1.2.8_win_xp" target="_blank"><b>QxEntityEditor 1.2.8 - Windows XP (portable)</b></a></td>
|
||
-->
|
||
</tr>
|
||
<tr>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_linux_32b.tar.gz&file_desc=QxEntityEditor_1.2.8_linux_32b"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_linux.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_linux_32b.tar.gz&file_desc=QxEntityEditor_1.2.8_linux_32b"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Linux 32 bits</b></a></td>
|
||
<td width="40"></td>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_linux_64b.tar.gz&file_desc=QxEntityEditor_1.2.8_linux_64b"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_linux.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_linux_64b.tar.gz&file_desc=QxEntityEditor_1.2.8_linux_64b"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Linux 64 bits</b></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="middle" width="80" align="center"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_macosx.zip&file_desc=QxEntityEditor_1.2.8_macosx"
|
||
target="_blank"><img alt="QxEntityEditor" src="./resource/logo_mac.gif" width="32" height="32"
|
||
border="0"></a></td>
|
||
<td align="justify"><a
|
||
href="../php/add_download.php5?file_path=QxEntityEditor/1.2.8/QxEntityEditor_1.2.8_macosx.zip&file_desc=QxEntityEditor_1.2.8_macosx"
|
||
target="_blank"><b>QxEntityEditor 1.2.8 - Mac OS X</b></a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</p>
|
||
<p align="justify"><b>Note : </b>by default, <b>QxEntityEditor</b> 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 : <a
|
||
href="mailto:ic-east.com">ic-east.com</a>.
|
||
Price of a <b>QxEntityEditor</b> license key : <i>500€</i> (per developer, 12 months of free
|
||
updates).<br>
|
||
<br>
|
||
<a href="./manual_qxee.html">A user manual (documentation) for <b>QxEntityEditor</b> application is
|
||
available</a>.
|
||
</p>
|
||
<a href="../qxentityeditor/resource/qxee_sample.png" target="_blank"><img alt="QxEntityEditor"
|
||
src="../qxentityeditor/resource/qxee_sample_small.png" border="0" class="img_with_shadow"></a>
|
||
<br><br>
|
||
<hr style="width: 90%" align="center" size="1" color="#100D5A">
|
||
<p align="justify">
|
||
<b>QxOrm</b> is based on <a href="http://www.qt.io/" target="_blank"><b>Qt framework</b></a> :
|
||
<p></p>
|
||
<table border="0" style="width: 100%" align="center">
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td valign="middle" width="161" align="center"><a href="http://www.qt.io/" target="_blank"><img alt="Qt"
|
||
src="./resource/logo_qt.jpg" width="42" height="50" border="0"></a></td>
|
||
<td align="justify"><b>Qt</b> : cross-platform application development framework : GUI (<i>QtGui</i>),
|
||
network (<i>QtNetwork</i>), XML (<i>QtXml</i>), database (<i>QtSql</i>)...<br>
|
||
Qt provides excellent support and documentation. Using Qt, you can write simple and powerful C++
|
||
code.<br>
|
||
Qt is produced by Digia's Qt Development Frameworks division and is available under LGPL license.<br>
|
||
QxOrm is compatible with many Qt's objects : <i>QObject, QString, QDate, QTime, QDateTime, QList,
|
||
QHash, QSharedPointer, QScopedPointer...</i><br>
|
||
It is recommended to install the latest version of Qt available at the following address : <a
|
||
href="http://www.qt.io/" target="_blank">http://www.qt.io/</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
<!--
|
||
<table border="0" style="width: 100%" align="center">
|
||
<col><col>
|
||
<tbody>
|
||
<tr>
|
||
<td valign="middle" width="161" align="center"><a href="http://www.boost.org/" target="_blank"><img alt="boost" src="./resource/logo_boost.jpg" width="161" height="50" border="0"></a></td>
|
||
<td align="justify"><b>boost</b> : 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.<br>
|
||
QxOrm uses the following boost's features (header files <i>*.hpp</i> only, boost <i>serialization</i> dependency is optional) : <i>smart_pointer, type_traits, multi_index_container, unordered_container, any, tuple, foreach, function.</i><br>
|
||
It is recommended to get the latest version of boost available at the following address : <a href="http://www.boost.org/" target="_blank">http://www.boost.org/</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
-->
|
||
<br>
|
||
Here are all changes logs of <b>QxOrm</b> library and <b>QxEntityEditor</b> application :
|
||
<ul>
|
||
<li><a href="#download_10"><b>QxOrm</b> library history</a> ;</li>
|
||
<li><a href="#download_20"><b>QxEntityEditor</b> application history</a>.</li>
|
||
</ul>
|
||
<br>
|
||
<a name="download_10"><b>QxOrm</b> library history :</a>
|
||
<table border="1" style="width: 100%" bgcolor="#FFFFFF">
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td><i>
|
||
<b>
|
||
<h2>Changes in version 1.5.0:</h2>
|
||
</b>
|
||
- Fix qx::dao::fetch_by_id_with_relation() when a table alias is used (table alias is now used in
|
||
the WHERE part instead of table name)<br>
|
||
- Fix qx::IxDataMember::getType() method when used in a multi-thread environment<br>
|
||
- New method qx::IxSqlRelation::linkRelationKeyTo() for MongoDB database to simulate lazy loading
|
||
for relationships (GitHub #107)<br>
|
||
- Fix qx::QxSqlDatabase and multi-thread issue when the OS assigns an old and destroyed thread
|
||
identifier to a new one (GitHub #42) + add method qx::QxSqlDatabase::removeDatabaseByThread() to
|
||
call at the end of a thread execution<br>
|
||
- Fix qx::QxSimpleCrypt class with Qt version >= 5.10 and error "Attempted to overwrite a
|
||
QRandomGenerator to system() or global()"<br>
|
||
- Fix database not opened using async queries (GitHub #109)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.9:</h2>
|
||
</b>
|
||
- Fix compilation issue with Qt 6.2+ (due to Qt JIRA : https://bugreports.qt.io/browse/QTBUG-92910),
|
||
more details in GitHub issue #54<br>
|
||
- Support QSqlQuery::execBatch() method to improve performance inserting/updating/deleting a list of
|
||
C++ instances in database (new optional parameter 'bUseExecBatch' available for functions :
|
||
qx::dao::insert, qx::dao::update, qx::dao::delete_by_id)<br>
|
||
- New method in qx::QxSqlQuery class named setFctOnBeforeSqlPrepare() to define a custom callback
|
||
function to modify SQL query before preparing in database<br>
|
||
- New callbacks functions available in qx::IxDataMember interface to customize SQL generated per
|
||
data member (see an example in ./test/qxBlogCompositeKey/src/blog.cpp file)<br>
|
||
- Fix an issue in qx::QxSqlRelationLinked::hierarchyResolveOutput() which could call
|
||
getIdFromQuery() for nothing, which could generate some warnings in Qt SQL driver (for example :
|
||
QPSQLResult::data: column XX out of range)<br>
|
||
- Fix a compilation issue of QxRestApi and QxHttpTransaction modules with Qt QStringBuilder option
|
||
enabled (GitHub issues #50, #83)<br>
|
||
- Improve SQL DISTINCT to support relationships (unit test available in qxBlog sample project)<br>
|
||
- New feature to fetch relationships only in LEFT OUTER/INNER JOIN and WHERE clauses (so no columns
|
||
in SELECT part) : use {NULL} syntax to define no relation columns in SELECT part (unit test
|
||
available in qxBlog sample project)<br>
|
||
- Fix a crash which could occur using qx::QxSession and multi-threaded environment<br>
|
||
- Add a new parameter caseSensitive (default value : false) to the method
|
||
qx::QxSqlQuery::getSqlResultAt()<br>
|
||
- Fix an issue with JSON REST API (QxRestApi module) and MongoDB database (more details in GitHub
|
||
issue #70)<br>
|
||
- Improve qx::QxClassX::registerAllClasses() : init all validator instances (can fix some issues in
|
||
a multi-thread environment)<br>
|
||
- New settings available in the qx::QxSqlDatabase singleton class
|
||
(setSqlDelimiterForTableNameAlias() and setSqlDelimiterForColumnNameAlias()) to add delimiters to
|
||
SQL aliases (more details in GitHub issue #57)<br>
|
||
- Fix linking error which could occur with Qt6 and MSVC2019 (should fix GitHub issues #98, #91, #89,
|
||
#90, #62, #65)<br>
|
||
- Fix all checks with QT_VERSION (using macro QT_VERSION_CHECK), should fix checks from Qt 5.10 to
|
||
Qt 5.15 (GitHub issue #81)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.8:</h2>
|
||
</b>
|
||
- Support Qt6 (tested with MSVC 2019 + CMake 3.19 on Windows) ==> QxOrm library is compatible
|
||
with Qt4, Qt5 and Qt6<br>
|
||
- Support PIMPL idiom for persistent classes (useful to reduce compilation times, to provide a
|
||
stable ABI, ascendant compatibility for shared libraries, to reduce binaries size)<br>
|
||
- Documentation about PIMPL idiom for persistent classes :
|
||
https://www.qxorm.com/qxorm_en/manual.html#manual_455<br>
|
||
- New sample project named qxBlogPImpl in ./test/ directory of QxOrm package to show how to
|
||
implement persistent classes using the PIMPL idiom<br>
|
||
- Possibility to ignore soft delete behavior during a session execution (useful to fetch logical
|
||
deleted instances for example) : qx::QxSession::ignoreSoftDelete()<br>
|
||
- Fix SQL DISTINCT keyword in qx::QxSqlQuery class (when DISTINCT is used, then the primary key is
|
||
not fetched)<br>
|
||
- Fix an issue which could happen after enabling _QX_ENABLE_QT_NETWORK compilation option (due to
|
||
QT_NO_SSL/QT_NO_OPENSSL used in QxThread.cpp file)<br>
|
||
- Fix an issue in qx::QxSqlDatabase and multi-thread context when a thread identifier is reused
|
||
(GitHub issue #42)<br>
|
||
- Add new behavior to qx::QxSession class with setAutoRollbackWhenDestroyed() option : if true, then
|
||
database rollback is called when session instance destructor (or close() method) is invoked (instead
|
||
of commit by default, GitHub issue #43)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.7:</h2>
|
||
</b>
|
||
- Fix a MongoDB issue with qx::dao::fetch_by_id_with_relation() (wrong id fetched)<br>
|
||
- Fix an issue with qx::dao::fetch_all when a custom list of columns with the primary key is
|
||
used<br>
|
||
- Fix identifier JSON serialization for MongoDB with properties registered as Q_PROPERTY (Qt
|
||
property meta system)<br>
|
||
- Fix a crash (seg fault) using qx::IxPersistable with multiple inheritance (for example QObject +
|
||
qx::IxPersistable) due to some static_cast to void * in QxFactory module (fix also for QxService
|
||
module and multiple inheritance)<br>
|
||
- Remove automatic relationship lazy fetch when not requested in query<br>
|
||
- Fix an issue with QJson and QDataStream serialization when class doesn't contain any identifier
|
||
(so not a database class) and is a wrapper of another registered class (can have same address
|
||
pointer as parent)<br>
|
||
- Improve qx::QxSqlQuery::freeText() method to add custom text to build SQL query : support
|
||
placeholders (add second parameter const QVariantList & values)<br>
|
||
- Improve performance in a multi-threads environment (mutex in qx::IxSqlQueryBuilder)<br>
|
||
- New setting to display more details (execution times) in qx::dao functions logs (to enable this
|
||
new feature : qx::QxSqlDatabase::getSingleton()->setDisplayTimerDetails(true))<br>
|
||
- Improve MongoDB integration to fetch a list of items : build C++ instances as soon as possible
|
||
without putting data in a buffer (better performance + less memory usage)<br>
|
||
- Improve MongoDB integration : support qx::dao::delete_by_query() function with MongoDB aggregation
|
||
framework<br>
|
||
- Improve qx::QxSqlQuery class (or its qx_query alias) : new addJoinQuery() method to insert SQL
|
||
sub-queries inside LEFT OUT JOIN / INNER JOIN (more details in documentation here :
|
||
https://www.qxorm.com/qxorm_en/manual.html#manual_3855)<br>
|
||
- Improve qx::QxSqlQuery class : new constructors with placeholders support + new methods to embed
|
||
SQL sub-queries (in_Select, notIn_Select, isEqualTo_Select, isNotEqualTo_Select)<br>
|
||
- Improve qx::QxCollection class : qx::QxCollection is now a thread-safe container (fix for example
|
||
QxModelView module when model is fetched in a different thread than the view)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.6:</h2>
|
||
</b>
|
||
- New QxHttpServer module : C++/Qt standalone multi-threaded HTTP 1.1 web server (support SSL/TLS,
|
||
persistent connections, cookies, sessions, chunked responses, URL dispatcher/routing, no other
|
||
dependency except QtNetwork) : https://www.qxorm.com/qxorm_en/manual.html#manual_96<br>
|
||
- New QxRestApi module : provide a REST API to send requests in JSON format from external
|
||
application (web services), from web-site (written in Angular for example), from QML or from
|
||
scripting langage (like Python) : https://www.qxorm.com/qxorm_en/manual.html#manual_97<br>
|
||
- With QxHttpServer and QxRestApi modules, QxOrm library can now be used to create web applications,
|
||
especially single-page applications (SPA) with famous Javascript frameworks like AngularJS, React,
|
||
Meteor.js, etc...<br>
|
||
- New project example named qxBlogRestApi : QML application with a list of REST requests to show how
|
||
to send JSON queries from Javascript to QxRestApi module + HTTP web server application to show how
|
||
to create web applications using QxHttpServer module<br>
|
||
- QxRestApi module supports : all CRUD operations, complex queries, several levels of relationships,
|
||
custom JSON output format, call dynamically native C++ functions registered in QxOrm context,
|
||
instance validation, call custom database queries<br>
|
||
- Improve JSON serialization engine : possibility to define a custom filter to not export all
|
||
properties (https://www.qxorm.com/qxorm_en/manual.html#manual_606)<br>
|
||
- Possibility to define a custom SQL table alias for complex queries with relationships using syntax
|
||
<my_table_alias> (https://www.qxorm.com/qxorm_en/manual.html#manual_3850)<br>
|
||
- Improve SQL generator for Oracle database : manage last insert id using RETURNING INTO syntax (thx
|
||
to Romain Macureau and Abdennour Boutrig)<br>
|
||
- Fix an issue with stored procedure and output parameters<br>
|
||
- New function available : qx::dao::count_with_relation<T>()<br>
|
||
- Fix JSON serialization in multi-thread environment<br>
|
||
- Change JSON QDateTime and QTime serialization format : use Qt::ISODateWithMs instead of
|
||
Qt::ISODate (Qt 5.8 or +)<br>
|
||
- Improve QxService module : support SSL/TLS secure connections + keep-alive connections<br>
|
||
- Remove *.suo files (MSVC++ temporary project files) from QxOrm package<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.5:</h2>
|
||
</b>
|
||
- Support MongoDB database : QxOrm library becomes a C++/Qt Object Document Mapper ODM library !<br>
|
||
- For more details about MongoDB integration, see QxOrm manual
|
||
(https://www.qxorm.com/qxorm_en/manual.html#manual_95) and new sample project available in
|
||
./test/qxBlogMongoDB/ directory<br>
|
||
- QxOrm library is now available on GitHub (official repository) :
|
||
https://github.com/QxOrm/QxOrm<br>
|
||
- Fix an issue in qx::IxSqlQueryBuilder class when QxOrm library is used in a multi-thread
|
||
environment<br>
|
||
- Support latest version of boost (1.66)<br>
|
||
- Update boost portable binary serialization classes to version 5.1 (provided by
|
||
https://archive.codeplex.com/?p=epa)<br>
|
||
- Fix an issue building SQL query for Oracle database (doesn't support AS keyword for table
|
||
alias)<br>
|
||
- Improve qx::QxClassX::registerAllClasses() function : possibility to initialize all relations
|
||
(useful to work with introspection engine)<br>
|
||
- Improve qx::IxPersistable interface : provide new methods toJson() / fromJson()<br>
|
||
- Improve documentation/website : change http://www.qxorm.com by https://www.qxorm.com
|
||
everywhere<br>
|
||
- Fix fetching relations with soft delete putting SQL condition in the JOIN part instead of WHERE
|
||
part<br>
|
||
- Fix SQL generator for Oracle database : use new limit/pagination syntax (version Oracle >
|
||
12.1)<br>
|
||
- Improve SQL generator interface : add 'onBeforeSqlPrepare()' method to modify/log SQL queries in
|
||
custom classes<br>
|
||
- Add an option in qx::QxSqlDatabase class to format SQL query (pretty-printing) before logging it
|
||
(can be customized creating a qx::dao::detail::IxSqlGenerator sub-class)<br>
|
||
- Fix an issue with boost/std::optional (to manage NULL database values) and some databases : if
|
||
optional is empty, then create a NULL QVariant based on QVariant::Type<br>
|
||
- Add an option in qx::QxSqlDatabase class to insert square brackets (or any other delimiters) in
|
||
SQL queries for table name and/or column name (to support specific database keywords)<br>
|
||
- Improve introspection engine : add getType() method in qx::IxDataMember interface to get C++ type
|
||
of a property dynamically<br>
|
||
- Improve qx::QxSqlDatabase singleton settings class to make easier working with several databases :
|
||
now there are 3 levels of settings : global >> per thread >> per database (see
|
||
'bJustForCurrentThread' and 'pJustForThisDatabase' optional parameters in all setXXXX() methods)<br>
|
||
- Fix QxOrm.pri for MinGW compiler on Windows : an issue could occurred to export some symbols from
|
||
shared library (some Qt signals for example)<br>
|
||
- Add an option in qx::QxSqlDatabase singleton class to display only slow SQL queries (see
|
||
setTraceSqlOnlySlowQueriesDatabase() and setTraceSqlOnlySlowQueriesTotal() methods)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.4:</h2>
|
||
</b>
|
||
QxOrm library doesn't depend on boost framework anymore (the boost dependency has been fully
|
||
removed, replaced by some C++11 features).<br>
|
||
So QxOrm library is now a pure Qt library which depends only on QtCore and QtSql by default.<br>
|
||
For backward compatibility, QxOrm library still supports some boost classes (boost smart-pointers,
|
||
unordered containers, boost::optional, etc...) : you have to define _QX_ENABLE_BOOST compilation
|
||
option to enable these features.<br>
|
||
<br>
|
||
Main advantages are :<br>
|
||
- QxOrm becomes a much lighter library<br>
|
||
- easier to install (because you don't have to deal with boost anymore)<br>
|
||
- reduce compilation times<br>
|
||
- reduce output binary size<br>
|
||
<br>
|
||
Thx also to Jimmy Taker for several improvments and new features in QxModelView module !<br>
|
||
<br>
|
||
- QxOrm library now requires a C++11 compiler (please note that QxOrm doesn't require a full
|
||
compliant C++11 compiler : for example, QxOrm can be built and used with MSVC 2012, GCC 4.5 or Clang
|
||
3.2)<br>
|
||
- Implement PIMPL idiom for some QxOrm classes to reduce compilation times and output binary
|
||
size<br>
|
||
- New class named qx::any to replace boost::any (basic implementation of boost::any written by
|
||
Kevlin Henney)<br>
|
||
- qx_shared_ptr alias doesn't exist anymore : it is replaced everywhere by std::shared_ptr<br>
|
||
- QxModelView module : all models based on qx::IxModel class can now be sorted (on all columns),
|
||
please note that you can also use QSortFilterProxyModel Qt class to sort your model<br>
|
||
- QxModelView module - qx::QxModel<T> : fix setData() with e_auto_update_on_field_change
|
||
option when an error occurred saving data in database, now previous value is restored if an error
|
||
occurred<br>
|
||
- QxModelView module - qx::IxModel : fix setHeaderData() using it with default role (Qt::EditRole)
|
||
changes the header in a header view (role Qt::DisplayRole)<br>
|
||
- QxModelView module - qx::IxModel : if a description is registered in QxOrm context, then it is
|
||
displayed in header for each property<br>
|
||
- QxModelView module : new feature available to add automatically an empty row at the end of the
|
||
table to insert quickly new items (setShowEmptyLine() method)<br>
|
||
- QxModelView module : possibility to define an intermediate base class between qx::IxModel and
|
||
qx::QxModel<T> to provide your own model features, for example imagine you develop a drag&drop
|
||
feature in a class named IxModelDragDrop, you can now create a QxOrm model like this (see the second
|
||
template parameter) : qx::IxModel * pModel = new qx::QxModel<MyPersistantClass,
|
||
IxModelDragDrop>();<br>
|
||
- QxOrm.pro : fix DESTDIR parameter on Windows<br>
|
||
- QxOrm.pri and QxOrm.cmake : add a section to enable QT_USE_QSTRINGBUILDER to optimize QString
|
||
operations<br>
|
||
- QxOrm library is now tested with MSVC 2015 compiler (support all MSVC versions from 2012)<br>
|
||
- Fix a bug in QxSqlError.h file with a qPrintable() call on a temporary object<br>
|
||
- Provide more details in logs after executing a SQL query : time to execute query in database +
|
||
time to fetch C++ instances<br>
|
||
- Support std::optional<T> (if your compiler supports C++17 features) to manage NULL database
|
||
value : new header available named <QxExtras/QxStdOptional.h> to include just after
|
||
<QxOrm.h> header file (ideally in a precompiled header)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.3:</h2>
|
||
</b>
|
||
- Support CMake : new CMakeLists.txt file added to build QxOrm library with CMake<br>
|
||
- Improve SQL error messages when qx::dao functions return a database error<br>
|
||
- New parameter in singleton class qx::QxSqlDatabase to log SQL bound values
|
||
(setTraceSqlBoundValues) : by default, bound values are logged when an error occurred<br>
|
||
- New syntax to select columns to not fetch : -{ col_1, col_2, etc... }<br>
|
||
- New function qx::dao::call_query_without_prepare() to execute specific SQL queries without
|
||
prepared statement<br>
|
||
- Improve QxModelView module : all QxOrm models (based on qx::IxModel interface) can be serialized
|
||
to JSON format (including all relationships levels) : this is now another way to work with
|
||
relationships and QML (thanks to JSON.parse() and JSON.stringify() javascript functions) without
|
||
using nested models concept (so without using QxEntityEditor model/view generated classes)<br>
|
||
- Improve qxBlogModelView sample project and QxOrm manual to show how to access to relationships
|
||
data in QML (nested models or JSON)<br>
|
||
- Fix a memory leak in qx::QxSqlRelation class<br>
|
||
- Reduce output binary size (~20%) and compilation times (~20%) to build persistent classes based on
|
||
QxOrm library<br>
|
||
- Support unity build concept to reduce compilation times to build QxOrm library and C++ persistent
|
||
classes generated by QxEntityEditor application : for more details, see _QX_UNITY_BUILD compilation
|
||
option in QxOrm.pri or QxOrm.cmake configuration file<br>
|
||
- Improve QxConvert module : possibility to store in database complex QVariant properties which
|
||
contain QVariantMap, QVariantHash or QVariantList types (JSON format)<br>
|
||
- Fix an issue with some databases when a foreign key is also a part of the primary key<br>
|
||
- Fix an issue with QSharedPointer and boost::serialization when a same raw pointer is shared by
|
||
several QSharedPointer during deserialization process<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.2:</h2>
|
||
</b>
|
||
- Support JSON serialization : each C++ class registered in QxOrm context can be
|
||
serialized/deserialized in JSON format (JSON feature requires Qt5)<br>
|
||
- For more details about JSON serialization, read QxOrm manual here :
|
||
https://www.qxorm.com/qxorm_en/manual.html#manual_606<br>
|
||
- With JSON serialization and QxService module : it is now possible to create REST Web Services to
|
||
send data to a javascript engine (web pages for example)<br>
|
||
- Fix some compilation errors with recent (and less permissive) compilers and latest versions of
|
||
boost and Qt<br>
|
||
- Fix relationship initialization assertion with complex, deep and circular relationships in large
|
||
database schema<br>
|
||
- Improve QDataStream serialization : should be faster now and fix an issue with circular instances
|
||
dependencies<br>
|
||
- Fix a bug fetching 1-n and n-n relationships when root is a container of stack objects (it worked
|
||
only with pointers or smart-pointers, for example : QList<blog> vs
|
||
QList<std::shared_ptr<blog>>)<br>
|
||
- Improve qx::dump() function : possibility to display a C++ instance state in XML or JSON
|
||
format<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.4.1:</h2>
|
||
</b>
|
||
<b>!!! IMPORTANT NOTE ABOUT THIS VERSION !!! :</b> it is strongly recommended to read the QxOrm.pri
|
||
configuration file of this new version (compilation options have changed compared to previous
|
||
versions).<br>
|
||
Now, by default, QxOrm library is a much lighter library : <b>QxOrm depends only on QtCore and
|
||
QtSql</b> (boost serialization is now optional and not required by default).<br>
|
||
By default, serialization engine is now based on Qt QDataStream class (but you can still enable
|
||
boost serialization defining _QX_ENABLE_BOOST_SERIALIZATION compilation option in QxOrm.pri
|
||
configuration file).<br>
|
||
So now, with default options :<br>
|
||
- QxOrm 1.4.1 is much easier to install because you don't have to deal with boost serialization
|
||
extra dependency ;<br>
|
||
- QxOrm 1.4.1 shared library is 3X smaller than 1.3.2 version ;<br>
|
||
- Generated binaries which depends on QxOrm library are 25% smaller ;<br>
|
||
- If you are not using serialization functions in current projects based on QxOrm library, then you
|
||
can define or not _QX_ENABLE_BOOST_SERIALIZATION compilation option without changing any line of
|
||
your source code.<br>
|
||
<br>
|
||
Here are all other changes of version 1.4.1:<br>
|
||
- Improve relationships engine : possibility to select columns to fetch using syntax : my_relation {
|
||
col_1, col_2, etc... }<br>
|
||
- Improve QxTraits module to reduce compilation times and build smaller binaries<br>
|
||
- Improve QxOrm website adding possibility to search and replacing the old FAQ by a more organized
|
||
manual (user guide)<br>
|
||
- New compilation option _QX_ENABLE_BOOST_SERIALIZATION to enable boost serialization dependency
|
||
(read QxOrm.pri configuration file for more details)<br>
|
||
- New compilation option _QX_ENABLE_QT_NETWORK to enable QxService module (transfer persistent layer
|
||
over network) : read QxOrm.pri configuration file for more details<br>
|
||
- New compilation option _QX_NO_RTTI to build QxOrm library without C++ RTTI type information<br>
|
||
- Support QDataStream Qt serialization engine (used by default when _QX_ENABLE_BOOST_SERIALIZATION
|
||
compilation option is not defined)<br>
|
||
- Improve qx_query class (SQL queries) : new method (named customOperator()) which gives the
|
||
possibility to define a custom operator (for example <@ for PostgreSQL ltree type)<br>
|
||
- Fix a program startup issue due to 'static initialization order fiasco' creating singletons (it
|
||
was an issue with some compilers during the shared library link process)<br>
|
||
- New namespace qx::dao::throwable : same functions as qx::dao namespace, but they throw a
|
||
qx::dao::sql_error exception when a SQL error occurred (instead of returning a QSqlError
|
||
instance)<br>
|
||
- Add a qAssertMsg() macro to put a more explicit error message when throwing an assertion<br>
|
||
- Include all *.inl files (template implementation) in QxOrm.pro project file : QtCreator can now
|
||
index these *.inl files in its project treeview<br>
|
||
- Rename QxStringCvt to QxConvert : so if you persist custom types to database, you have to rename
|
||
from QxStringCvt_FromVariant, QxStringCvt_ToVariant to QxConvert_FromVariant,
|
||
QxConvert_ToVariant<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.3.2:</h2>
|
||
</b>
|
||
- Support C++11 types (need to set compilation options in QxOrm.pri config file to enable these
|
||
features)<br>
|
||
- With _QX_CPP_11_SMART_PTR compilation option : std::unique_ptr, std::shared_ptr, std::weak_ptr<br>
|
||
- With _QX_CPP_11_CONTAINER compilation option : std::unordered_map, std::unordered_set,
|
||
std::unordered_multimap, std::unordered_multiset<br>
|
||
- With _QX_CPP_11_TUPLE compilation option : std::tuple<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.3.1:</h2>
|
||
</b>
|
||
- 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)<br>
|
||
- Add some useful methods to qx::IxModel class and fix several issues with the QxModelView
|
||
module<br>
|
||
- Support last version of MinGW with large precompiled header bug : new compilation option
|
||
_QX_NO_PRECOMPILED_HEADER (to enable in QxOrm.pri file)<br>
|
||
- Fix issue when loading several shared libraries on Windows with services registered in QxService
|
||
module<br>
|
||
- Fix the qx::QxSqlQuery serialization process used by QxService module to send requests over
|
||
network<br>
|
||
- Fix an issue with qx::QxCollection<Key, Value> class when inserting an item at last
|
||
position<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.9:</h2>
|
||
</b>
|
||
- Improve nested models in QxModelView module to be able to use several relationships levels in
|
||
QML<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.8:</h2>
|
||
</b>
|
||
- 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<br>
|
||
- New section in the QxOrm.pri file with some tips to reduce output binaries size<br>
|
||
- Fix the call of triggers to have the inserted ID inside the trigger function with PostgreSQL<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.7:</h2>
|
||
</b>
|
||
- New module QxModelView : now, all classes registered in QxOrm context can be used with Qt
|
||
model/view architecture (Qt widgets and/or QML views)<br>
|
||
- qx::IxModel interface provides an easy way to work on QML with QxOrm library and interact with
|
||
databases<br>
|
||
- 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) ?'<br>
|
||
- New function qx::dao::save_with_relation_recursive(), useful to save a full tree structure for
|
||
example<br>
|
||
- 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)<br>
|
||
- Support database table defined into a schema (using qx::IxDataMember::setName() function)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.6:</h2>
|
||
</b>
|
||
- First version full compatible with QxEntityEditor application : the graphic editor for QxOrm
|
||
library !<br>
|
||
- For more details about QxEntityEditor, go to QxOrm website : https://www.qxorm.com/<br>
|
||
- Thanks to the recent release of Qt 5.2, QxOrm library can now be used on Android and iOS<br>
|
||
- Improve relationships and triggers engine<br>
|
||
- Triggers onBeforeFetch() and onAfterFetch() called when fetching relationships<br>
|
||
- Fix release mode detection during compilation : should improve performance on some
|
||
environments<br>
|
||
- Add serialization for QSqlError, qx::QxSqlQuery, qx::QxInvalidValue and qx::QxInvalidValueX
|
||
classes<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.5:</h2>
|
||
</b>
|
||
- New license : go to download page of QxOrm website for more details<br>
|
||
- Support Qt5<br>
|
||
- New compiler supported : Clang (tested on Mac OS X)<br>
|
||
- Now each QxOrm version will be tested in 32-bit and 64-bit mode<br>
|
||
- Improve QxOrm introspection engine : possibility to register static class methods<br>
|
||
- Improve QxService module : now it's easy to add an authentication process on server side<br>
|
||
- New class qx::exception to get error code + error description with services methods throwing an
|
||
exception<br>
|
||
- New settings available in QxOrm.pri config file (whithout changing QxConfig.h file)<br>
|
||
- Possibility to implement specifics database SQL functions overriding qx_query class<br>
|
||
- Fix an issue when fetching multiple levels of relationship and NULL pointers<br>
|
||
- Fix a bug with MS SQL Server database and update queries using auto-increment id<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.4:</h2>
|
||
</b>
|
||
- New relationship engine to fetch easily many levels of relationships per query<br>
|
||
- For more details about this new engine, goto the FAQ : 'How to use relationship engine to fetch
|
||
datas from many tables ?'<br>
|
||
- Add 2 functions : qx::dao::execute_query and qx::dao::call_query to call a stored procedure or a
|
||
custom SQL query<br>
|
||
- For more details about this new feature, goto the FAQ : 'How to execute a stored procedure or a
|
||
custom SQL query ?'<br>
|
||
- Add support for boost::optional type to manage NULL database value without using QVariant type<br>
|
||
- New class : qx::QxDaoAsync to make easier to execute queries in asynchronous way
|
||
(multi-thread)<br>
|
||
- For more details about this new class, goto the FAQ : 'How to use qx::QxDaoAsync class to execute
|
||
queries in asynchronous way (multi-thread) ?'<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.3:</h2>
|
||
</b>
|
||
- New interface 'qx::IxPersistable' (abstract class) to simplify polymorphism using QxOrm
|
||
library<br>
|
||
- For more details about this new interface, goto the FAQ : 'How to use qx::IxPersistable interface
|
||
?'<br>
|
||
- New methods into 'qx::IxCollection' interface to iterate over each items without knowing its
|
||
type<br>
|
||
- New option into 'QxOrm.pri' file to build QxOrm library statically (see '_QX_STATIC_BUILD'
|
||
option)<br>
|
||
- 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 ?')<br>
|
||
- Add 'std::type_info' class information to introspection engine<br>
|
||
- Some minor bugs fixed ('qx::dao::sql_error' exception message, SQL query column alias, mutex,
|
||
etc.)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.2:</h2>
|
||
</b>
|
||
- New module to provide a validation engine : QxValidator module<br>
|
||
- For more details about QxValidator module, goto the FAQ of QxOrm library : 'How to use QxValidator
|
||
module to validate automatically an instance ?'<br>
|
||
- Fix last insert ID with PostgreSQL using 'RETURNING' keyword : fetch inserted ID instead of
|
||
OID<br>
|
||
- Improve SQL generator providing the good SQL type for all databases<br>
|
||
- Add support for special database keywords using '[', ']' and '"' characters<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.2.1:</h2>
|
||
</b>
|
||
- 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 ?'<br>
|
||
- 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) ?'<br>
|
||
- Implement 'repository' pattern to provide a common interface for persistent methods (CRUD) with 3
|
||
new classes : 'qx::IxRepository', 'qx::QxRepository<T>' and 'qx::QxRepositoryX'<br>
|
||
- Possibility to serialize a QVariant 'UserType' with serialization engine of QxOrm library<br>
|
||
- 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 ?'<br>
|
||
- FAQ updated on QxOrm website with now 28 questions and answers<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.9:</h2>
|
||
</b>
|
||
- 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>())<br>
|
||
- 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 ?'<br>
|
||
- Improve introspection/reflection engine : see the FAQ (How to use introspection engine (or
|
||
reflection engine) of QxOrm library ?) for more details<br>
|
||
- Possibility to add meta-data (using a property bag) to introspection engine : see 'IxClass',
|
||
'IxDataMember' and 'IxFunction' classes for more details<br>
|
||
- Add function 'qx::QxClassX::dumpSqlSchema()' to explain how to create your own SQL schema based on
|
||
C++ classes<br>
|
||
- 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<br>
|
||
- QxService module : new feature to encrypt/decrypt data before transfering it over network<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.8:</h2>
|
||
</b>
|
||
- 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<br>
|
||
- Add 'qx::QxSession' class : define a session to manage automatically database transactions (using
|
||
C++ RAII), see the FAQ for more details<br>
|
||
- Add 'qx::QxDateNeutral', 'qx::QxTimeNeutral' and 'qx::QxDateTimeNeutral' classes : helper classes
|
||
to store date-time value into database under neutral format => cross database compatibility<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.7:</h2>
|
||
</b>
|
||
- Add soft delete behavior : see the FAQ (How to define a soft delete behavior ?) for more details
|
||
about this new feature<br>
|
||
- Add functions into namespace 'qx::dao' to update an element with a SQL condition :
|
||
update_by_query, update_optimized_by_query, etc.<br>
|
||
- 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<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.6:</h2>
|
||
</b>
|
||
- QxOrm library online documentation available : 'https://www.qxorm.com/doxygen/index.html'<br>
|
||
- Possibility to disable QtGui dependency using compilation option in 'QxConfig.h' file :
|
||
_QX_ENABLE_QT_GUI_DEPENDENCY<br>
|
||
- Possibility to disable QtNetwork dependency (so QxService module too) using compilation option in
|
||
'QxConfig.h' file : _QX_ENABLE_QT_NETWORK_DEPENDENCY<br>
|
||
- Provide a new macro to register abstract class into QxOrm context :
|
||
QX_REGISTER_ABSTRACT_CLASS()<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.5:</h2>
|
||
</b>
|
||
- New feature available : 'QxService' module to create C++ application server<br>
|
||
- 'QxService' provides an easy and powerful way to create services and to transfer data over
|
||
network<br>
|
||
- New tutorial available to explain how 'QxService' module works<br>
|
||
- New sample available at './test/qxClientServer' directory<br>
|
||
- QxOrm can be built with 'CONFIG += no_keywords' flag in '*.pro' files<br>
|
||
- Bug fix with 'qx::dao::create_table<>' function and relation 'many-to-many'<br>
|
||
- QxOrm should now build fine with GCC <= 4.2<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.4:</h2>
|
||
</b>
|
||
- 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)<br>
|
||
- Support multi-columns primary key (composite key) : see sample './test/qxBlogCompositeKey/'<br>
|
||
- Improve strategy of inheritance : QxOrm supports 'Concrete Table Inheritance' strategy ('Concrete
|
||
Table Inheritance' becomes default strategy)<br>
|
||
- New smart-pointer 'qx::dao::ptr<T>' based on Qt 'QSharedPointer<T>' to provide 2 new
|
||
features : 'is dirty' and 'update optimized'<br>
|
||
- 'qx::dao::ptr<T>' can be used with a simple object and with many containers (stl, boost, Qt
|
||
and 'qx::QxCollection' containers)<br>
|
||
- 'qx::dao::ptr<T>' keeps original values from database and provides a 'isDirty()' method to
|
||
retrieve all properties changed<br>
|
||
- 'qx::dao::update_optimized' must be used with 'qx::dao::ptr<T>' to save into database only
|
||
properties changed<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.3:</h2>
|
||
</b>
|
||
- This version works fine with MinGW on Windows<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.2:</h2>
|
||
</b>
|
||
- License LGPL<br>
|
||
- Fix compilation problems on Linux and boost > 1.38<br>
|
||
- Fix sql query with MySql database<br>
|
||
- Disable assert when qx::dao functions return an error<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.1:</h2>
|
||
</b>
|
||
- This version supports Visual Studio 2010<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version 1.1.0:</h2>
|
||
</b>
|
||
- First release<br>
|
||
</i></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
<br>
|
||
<a name="download_20"><b>QxEntityEditor</b> application history :</a>
|
||
<table border="1" style="width: 100%" bgcolor="#FFFFFF">
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td><i>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.8:</h2>
|
||
</b>
|
||
- New export plugin 'QxEESourceControlExport' : export a *.qxee QxEntityEditor project file to a
|
||
list of JSON files which can be easily check-in in a source control repository (Git, Perforce, CVS,
|
||
etc...)<br>
|
||
- New import plugin 'QxEESourceControlImport' : import a list of JSON files (generated using
|
||
'QxEESourceControlExport' export plugin) inside a *.qxee QxEntityEditor project file<br>
|
||
- These 2 new plugins allow a team development to work simultaneously on a same *.qxee
|
||
QxEntityEditor project file<br>
|
||
- A typical workflow could be (with 2 developers named dev A and dev B) :<br>
|
||
* dev A and dev B work on a same *.qxee QxEntityEditor project file<br>
|
||
* dev A create/modify/change some entities in QxEntityEditor application<br>
|
||
* dev B create/modify/change other entities in QxEntityEditor application<br>
|
||
* dev A and dev B export the *.qxee project file using the new 'QxEESourceControlExport' export
|
||
plugin<br>
|
||
* Once exported, dev A and dev B check-in the JSON files inside the source control manager (Git,
|
||
Perforce, CVS, etc...) on their own branch<br>
|
||
* dev A and dev B integrate from their own branch to the DEV (or MAIN or MASTER) branch (if there
|
||
are some conflicts to resolve, it should be easy because JSON files are easy to read and
|
||
understand)<br>
|
||
* dev A and dev B can now get latest JSON files from the DEV (or MAIN or MASTER) branch : these JSON
|
||
files contain both modifications from dev A and dev B<br>
|
||
* dev A and dev B can import these JSON files inside QxEntityEditor application using the new
|
||
'QxEESourceControlImport' import plugin<br>
|
||
- These 2 new plugins can be executed using command line (like all other QxEntityEditor plugins),
|
||
here are 2 examples :<br>
|
||
* Export : QxEntityEditor --no_gui --project="C:\Temp\qxBlog.qxee" --plugin=QxEESourceControlExport
|
||
--QxEESourceControlExport_path="C:\Temp\source_control\"<br>
|
||
* Import : QxEntityEditor --no_gui --project="C:\Temp\qxBlog.qxee" --plugin=QxEESourceControlImport
|
||
--QxEESourceControlImport_path="C:\Temp\source_control\qxBlog.qxee.export.json"<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.7:</h2>
|
||
</b>
|
||
- Fix an issue with MySQL database schema import process when MySQL server is configured to answer
|
||
with column names in UPPERCASE (may fix other imports depending on specific database
|
||
configuration)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.6:</h2>
|
||
</b>
|
||
- Support PIMPL (private implementation or d-pointer) idiom in the C++ export plugin<br>
|
||
- Documentation about PIMPL idiom for persistent classes :
|
||
https://www.qxorm.com/qxorm_en/manual_qxee.html#cpp_export_settings_parameters<br>
|
||
- Fix import database schema for PostgreSQL version 12 and +<br>
|
||
- Fix some assertions on macOS and linux versions due to libavoid library compiled without NDEBUG
|
||
compilation option (should improve performance too)<br>
|
||
- Add CMake 'target_precompile_headers' command for generated CMakeLists.txt files to support
|
||
precompiled headers building with CMake (reduce compilation times)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.5:</h2>
|
||
</b>
|
||
- Fix an issue with fonts on macOS Catalina 10.15<br>
|
||
- Add command line parameter --font : define application font with syntax
|
||
<family>||<pointSize>||<weight>||<italic> (only <family> is required),
|
||
for example : Courier New||14<br>
|
||
- Add command line parameter --style_sheet : define application style sheet (more details here :
|
||
https://doc.qt.io/qt-5/stylesheet-reference.html), for example : QWidget { background-color: black
|
||
}<br>
|
||
- Fix meta-data (property bag) C++ export : keep same order between several C++ exports (this is now
|
||
easier to check differences between 2 C++ exports using WinMerge or any other comparison/diff
|
||
tool)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.4:</h2>
|
||
</b>
|
||
- New feature in Javascript engine to customize exports : include QxRestApi module to query *.qxee
|
||
project file<br>
|
||
- Fix a property/relation sorting issue in C++ export after importing a database schema (which could
|
||
be annoying to make some C++ files diffs between 2 exports)<br>
|
||
- Fix a crash which could occurred sometimes importing a new table on an existing schema<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.3:</h2>
|
||
</b>
|
||
- Fix a crash which appears sometimes with complex database schema to draw relationships (orthogonal
|
||
way)<br>
|
||
- Improve QxEntityEditor command line parameters : possibility to import/export without using GUI
|
||
(useful to manage a Jenkins server for example)<br>
|
||
- For more details about command line parameters, go to QxEntityEditor documentation :
|
||
https://www.qxorm.com/qxorm_en/manual_qxee.html#qxee_command_line<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.2:</h2>
|
||
</b>
|
||
- Fix an issue after importing a project (from database or JSON file) which forced user to refresh
|
||
or reload current project<br>
|
||
- Improve performance (fetching less data from database) when loading relationships from generated
|
||
persistent classes (bLoadFromDatabase parameter)<br>
|
||
- Change model/view export plugin to take into account some improvments available in the new version
|
||
of QxOrm library<br>
|
||
- Support changes of new QxOrm version : remove boost dependency by default and enable C++11
|
||
features<br>
|
||
- Improve Javascript engine to customize exports : add 3 functions available in js script to get all
|
||
QxEntityEditor settings (at global level, project level and plugin level)<br>
|
||
- Check entities schema before exporting to C++ project : if a design error is detected, then
|
||
display a message to user<br>
|
||
- Fix SQL type field in property settings : now you can put parenthesis (for example VARCHAR(255) is
|
||
now allowed)<br>
|
||
- DDL export for MySQL (and MariaDB) : add ` character to escape column name and table name<br>
|
||
- Add full path to project in recent projects list and main window title bar<br>
|
||
- Now it is easier to select a relationship from entities diagram with a simple click on it<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.2.1:</h2>
|
||
</b>
|
||
- Support CMake : each C++ project generated by QxEntityEditor (persistent classes, services,
|
||
model/view) provide a CMakeLists.txt file to build with CMake<br>
|
||
- New online QxEntityEditor manual (user guide) available at :
|
||
https://www.qxorm.com/qxorm_en/manual_qxee.html<br>
|
||
- Improve Javascript engine to customize export generated files : add a parameter named
|
||
'output_location' to know where generated files are located + add functions to get a list of all
|
||
entities/enums of a project (see ./samples/custom_script.js file for more details)<br>
|
||
- Improve database import process (SQLite, MySQL/MariaDB, PostgreSQL, Oracle and MSSQLServer) : fix
|
||
an issue importing composite foreign keys + foreign keys embedded in primary key ==> so it is now
|
||
possible to import more complex database schema<br>
|
||
- Improve DDL database schema export process : fix an issue with 1-1 relationship + manage composite
|
||
keys<br>
|
||
- New menu "Naming convention" to provide a fast way to rename all entities/properties/enums
|
||
(without breaking mapping to database) : support snake_case, camelCase and PascalCase (or upper
|
||
camel case), this new menu can be useful after an import from database process for example<br>
|
||
- Each screen of QxEntityEditor provides now a fast access to the online manual (user guide) in its
|
||
associated topic (new button "Documentation" + shortcut pressing F1 key everywhere)<br>
|
||
- New buttons undo/redo in the main QxEntityEditor toolbar to undo or redo actions done on entities,
|
||
enumerations, comments, layout (undo/redo feature can be disabled to improve performance on large
|
||
projects)<br>
|
||
- Support _QX_UNITY_BUILD compilation option to reduce compilation times of generated C++ projects
|
||
(recommended with CMake which doesn't support natively precompiled headers)<br>
|
||
- Fix an issue importing a relationship where target entity doesn't have a primary key<br>
|
||
- Fix an issue with C++ services export plugin and JSON serialization : "Unable to create nude
|
||
pointer for input parameter"<br>
|
||
- Fix an issue with abstract entities and C++ model/view export plugin and C++ services export
|
||
plugin<br>
|
||
- Possibility to put hexadecimal values to define an enumeration<br>
|
||
- New Javascript sample file in directory ./samples/ named q_property.js to show how to add
|
||
automatically Q_PROPERTY definition for each property generated by QxEntityEditor<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.9:</h2>
|
||
</b>
|
||
- New import plugin to connect to MySQL or MariaDB database without having to deal with ODBC
|
||
settings<br>
|
||
- New import plugin to connect to PostgreSQL database without having to deal with ODBC settings<br>
|
||
- New import plugin to load a QxEntityEditor project from a JSON file<br>
|
||
- Fix SQLite import process to manage composite keys<br>
|
||
- Improve Javascript engine to customize export process : new types available by script to manage
|
||
files and directories + possibility to get/set environment variables (read custom_script.js file in
|
||
./samples/ directory for script examples)<br>
|
||
- Improve Javascript engine to customize export process : new events/actions available by script :
|
||
PLUGIN_EXPORT_START, PLUGIN_EXPORT_END, AFTER_CLOSING_FILE<br>
|
||
- New message box displayed if directory doesn't exist when starting an export process (to create it
|
||
automatically)<br>
|
||
- Fix an issue with the "Tag project state" function (project historic) : each tag double the size
|
||
of a *.qxee project file (now each tag is optimized)<br>
|
||
- Fix C++ services export process when C++11 features are enabled in QxOrm.pri configuration
|
||
file<br>
|
||
- Possibility to export a *.qxee project file to a JSON text file (can be useful to store a text
|
||
representation in a source control, like Perforce, VSS, CVS, Git, etc...)<br>
|
||
- Possibility to use an environment variable to define QxOrm library location (using the same syntax
|
||
as qmake, for example $$(QXORM_DIR))<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.8:</h2>
|
||
</b>
|
||
- Improve import plugins : reduce import process time : now, you can import hundred of entities in
|
||
few seconds into a QxEntityEditor project<br>
|
||
- Relationship n-1 : possibility to define a database column name different than the relationship
|
||
name<br>
|
||
- 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<br>
|
||
- Improve import by ODBC plugin screen : new schema/namespace level in the list of tables/views
|
||
treeview<br>
|
||
- 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<br>
|
||
- 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<br>
|
||
- Import process more permissive : possibility to import tables without primary key and tables
|
||
without column<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.7:</h2>
|
||
</b>
|
||
- New Navigator window (under project treeview) : useful to navigate over large diagram<br>
|
||
- 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)<br>
|
||
- Possibility to define a background color by namespace : useful to group all entities in the
|
||
diagram associated to a same namespace<br>
|
||
- New feature to customize entities/enumerations/notes colors at several levels<br>
|
||
- Define items colors at project level (menu Tools >> Project settings >> Colors
|
||
tab)<br>
|
||
- Define items colors at namespace level (right-click on the diagram >> Define colors by
|
||
namespace)<br>
|
||
- Define colors at item level : right-click on an item (entity, enumeration or comment) >>
|
||
Define item colors<br>
|
||
- New action to organize automatically the diagram layout, useful after an import process for
|
||
example (menu View >> Organize diagram layout)<br>
|
||
- Improve the DDL SQL export plugin : new option to export relationships as foreign keys constraints
|
||
in database<br>
|
||
- 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)<br>
|
||
- Import database by ODBC plugin : fix the import from MS SQL Server database when tables are not
|
||
located in the default schema (dbo)<br>
|
||
- QxEntityEditor Mac OS X version : fix an issue to load the QxEEPrinter plugin<br>
|
||
- 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)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.6:</h2>
|
||
</b>
|
||
- New javascript engine to customize the C++ and DDL SQL export process writing your own custom
|
||
script<br>
|
||
- Integrated debugger to debug your own custom javascript files (for example, putting a breakpoint
|
||
or logging some traces)<br>
|
||
- New plugin to print the entities diagram as a PNG image file and PDF file<br>
|
||
- New property parameter UNIQUE (in property params window) used by the DDL SQL generator to create
|
||
the database schema<br>
|
||
- Improve nested models in QxModelView module to be able to use several relationships levels in
|
||
QML<br>
|
||
- Possibility to change the order in the list of properties and list of relationships of an
|
||
entity<br>
|
||
- Change encoding of generated files : now files are UTF-8<br>
|
||
- Possibility to put a relative path to the QxEntityEditor project file (*.qxee file) in each plugin
|
||
location settings<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.5:</h2>
|
||
</b>
|
||
- 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)<br>
|
||
- Now, with this new export plugin, working on QML with C++ entities has never been so easy !<br>
|
||
- New function, menu "Tools >> Plugins scripts", to define your own custom scripts
|
||
before/after a plugin execution<br>
|
||
- 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<br>
|
||
- New option in the C++ export plugin to generate or not the custom directory with all custom files
|
||
for each entity<br>
|
||
- Scrollbar available in the entities viewer<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.4:</h2>
|
||
</b>
|
||
- Improve import by ODBC plugin to manage relationship, schema and composite key for SQLite, MySQL,
|
||
PostgreSQL, Oracle and MS SQL Server databases<br>
|
||
- New import from SQLite plugin to import SQLite database structure into QxEntityEditor project
|
||
without having to create an ODBC DSN connexion<br>
|
||
- Improve C++ export plugin : add a set of useful methods in generated classes + option to manage
|
||
relative path to QxOrm library<br>
|
||
- New menu to rename a namespace (move all entities to another namespace) and delete a list of
|
||
entities by namespace<br>
|
||
- Fix a bug when executing QxEntityEditor in command line (no GUI)<br>
|
||
- Add a viewer mode to open a QxEntityEditor project with unlimited entities count without having a
|
||
license key (read-only mode)<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.3 (first official release):</h2>
|
||
</b>
|
||
- New plugin to transfer your data model over network and create quickly client/server applications,
|
||
using QxService module<br>
|
||
- New options to define entity, enum and comment width in entities viewer<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.2 (BETA):</h2>
|
||
</b>
|
||
- New plugin to generate DDL SQL script (database schema) for SQLite, MySQL, PostgreSQL, Oracle and
|
||
MS SQL Server databases<br>
|
||
- The new DDL SQL plugin manages automatically schema evolution for each project version (ALTER
|
||
TABLE, ADD COLUMN, DROP INDEX, etc.)<br>
|
||
- Add post-it or comments in the entities viewer<br>
|
||
- Option to display or not property type in the entities viewer<br>
|
||
<br>
|
||
<b>
|
||
<h2>Changes in version QxEntityEditor 1.1.1 (BETA):</h2>
|
||
</b>
|
||
- First BETA version of QxEntityEditor application<br>
|
||
- Provide a graphic way to manage the data model for QxOrm library<br>
|
||
- 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, Windows Phone,
|
||
Raspberry Pi, etc.)<br>
|
||
- Based on plugins and provides many ways to import/export the data model<br>
|
||
- Generate C++ persistent classes automatically (registered in QxOrm context)<br>
|
||
</i></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
<hr style="width: 80%" align="center" size="1" color="#100D5A">
|
||
<table border="0" style="width: 80%" align="center">
|
||
<col>
|
||
<col>
|
||
<col>
|
||
<tbody>
|
||
<tr>
|
||
<td align="left" valign="middle">
|
||
<img alt="QxOrm" src="./resource/logo_qxorm_small.png" width="168" height="40">
|
||
</td>
|
||
<td align="center" valign="middle">
|
||
<font size="2"><EFBFBD> 2011-202XDL Teamty - <a href="mailto:ic-east.com">ic-east.com</a></font>
|
||
</td>
|
||
<td align="right" valign="middle">
|
||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||
<input type="hidden" name="cmd" value="_s-xclick">
|
||
<input type="hidden" name="hosted_button_id" value="2K4Z58ZYAYJ6S">
|
||
<input type="image" src="./resource/paypal_support_qxorm_library.gif" border="0" name="submit"
|
||
alt="Support QxOrm library - PayPal">
|
||
<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
|
||
</form>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</body>
|
||
|
||
</html> |