Click here to Skip to main content
15,892,072 members
Articles / Web Development / HTML

QxOrm - C++ ORM (Object Relational Mapping) Library

Rate me:
Please Sign up or sign in to vote.
4.90/5 (61 votes)
24 Apr 2019GPL326 min read 140.9K   321   140  
QxOrm C++ library: Persistence (based on QtSql Qt library) - Serialization (based on boost::serialization library) - Reflection (introspection)
<!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++ Object Relational Mapping library</title>
  <meta name="generator" content="Amaya, see http://www.w3.org/Amaya/">
  <style type="text/css">
   .comment { color: #008000; font-style: italic; }
   .pre { color: #000099; }
   .string { color: #DF0101; }
   .char { color: #009900; }
   .float { color: #996600; }
   .int { color: #999900; }
   .bool { color: #000000; font-weight: bold; }
   .type { color: #FF6633; }
   .flow { color: #FF0000; }
   .keyword { color: #990000; }
   .operator { color: #663300; font-weight: bold; }
   .operator { color: #663300; font-weight: bold; }
  </style>
</head>
<body>
<table border="0" style="width: 80%" align="center">
  <col><col>
  <tbody>
    <tr>
      <td><a href="./home.html"><img alt="QxOrm"
        src="./resource/logo_qxorm.jpg" width="256" align="left" height="61"
        border="0"></a></td>
      <td><img alt="C++" src="./resource/logo_cpp.jpg" width="50" align="right"
        height="50"></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"><img alt="Home"
        src="./resource/link_home.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></a></td>
      <td align="center"><a href="./download.html"><img alt="Download"
        src="./resource/link_download.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></a></td>
      <td align="center"><a href="./quick_sample.html"><img alt="Quick sample"
        src="./resource/link_quick_sample.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></a></td>
      <td align="center"><a href="./tutorial.html"><img alt="Tutorial"
        src="./resource/link_tutorial.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></a></td>
      <td align="center"><a href="./faq.html"><img alt="Faq"
        src="./resource/link_faq.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></a></td>
      <td align="center"><a href="./link.html"><img alt="Link"
        src="./resource/link_link.jpg" width="120" height="35"
        style="border:1px solid #100D5A; border-color:#100D5A;"></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>
  <tbody><tr>
  <td align="left" valign="top"><font size="2">QxOrm  &gt;&gt;  Download</font></td>
  <td align="right" valign="top"><font size="2">Current version : QxOrm 1.1.5 (LGPL)</font></td>
  <td width="10px"></td>
  <td width="40px" height="30px"><a href="../qxorm_fr/download.html"><img alt="Version fran�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>
  </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 href="./resource/license.lgpl.txt" target="_blank">LGPL license</a>.<br><br>
                  <table border="0" style="width: 100%" align="center">
                   <col>
                   <col>
                   <tbody>
                     <tr>
                       <td valign="middle" width="80" align="center"><a href="http://sourceforge.net/projects/qxorm/files/" target="_blank"><img alt="Download QxOrm" src="./resource/download.jpg" width="40" height="48" border="0"></a> </td>
                       <td align="justify">
                         <a href="http://sourceforge.net/projects/qxorm/files/" target="_blank">
                         <b>Download QxOrm 1.1.5 (source + test + documentation)</b></a><br>
                         This version has been tested with <b>Visual Studio 2008 and 2010</b> on Windows, <b>GCC 4.4.1</b> on Linux and <b>MinGW</b> on Windows
                       </td>
                     </tr>
                   </tbody>
                  </table>
                 <br>
                 <i>Note : you can also download last version of QxOrm <a href="../version/QxOrm_1.1.5.zip">here</a>.</i><br>
                 <p align="justify">
                 Before you install and compile <b>QxOrm</b>, you need the following libraries : <a href="http://www.boost.org/" target="_blank"><b>boost</b></a> (from version 1.38) and <a href="http://qt.nokia.com/" target="_blank"><b>Qt</b></a> (from version 4.5.0) :</p>
              </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://qt.nokia.com/qt-in-use/ambassadors/qtambassador/" target="_blank">Qt Ambassador Program</a></font></b>
              </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 features of boost : <i>smart_pointer, serialization, type_traits, multi_index_container, unordered_container, any, tuple, foreach, function.</i><br>
              It is recommended to install 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>
        <p></p>
        <table border="0" style="width: 100%" align="center">
          <col><col>
          <tbody>
            <tr>
              <td valign="middle" width="161" align="center"><a href="http://qt.nokia.com/" 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 : ihm (<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 Nokia's Qt Development Frameworks division and is available under LGPL license.<br>
              QxOrm is compatible with a lot of 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://qt.nokia.com/" target="_blank">http://qt.nokia.com/</a></td>
            </tr>
          </tbody>
        </table>
        <p></p>
        <br><b>QxOrm</b> library history :
        <table border="1" style="width: 100%" bgcolor="#FFFFFF">
          <col>
          <tbody>
            <tr>
              <td><i>
Changes in version 1.1.5:<br>
- 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&lt;&gt;' function and relation 'many-to-many'<br>
- QxOrm should now build fine with GCC &lt;= 4.2<br>
<br>
Changes in version 1.1.4:<br>
- 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&lt;T&gt;' based on Qt 'QSharedPointer&lt;T&gt;' to provide 2 new features : 'is dirty' and 'update optimized'<br>
- 'qx::dao::ptr&lt;T&gt;' can be used with a simple object and with many containers (stl, boost, Qt and 'qx::QxCollection' containers)<br>
- 'qx::dao::ptr&lt;T&gt;' 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&lt;T&gt;' to save into database only properties changed<br>
<br>
Changes in version 1.1.3:<br>
- This version works fine with MinGW on Windows<br>
<br>
Changes in version 1.1.2:<br>
- License LGPL<br>
- Fix compilation problems on Linux and boost &gt; 1.38<br>
- Fix sql query with MySql database<br>
- Disable assert when qx::dao functions return an error<br>
<br>
Changes in version 1.1.1:<br>
- This version supports Visual Studio 2010<br>
<br>
Changes in version 1.1.0:<br>
- First release<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>
  <tbody>
    <tr>
      <td align="left" valign="middle"><img alt="QxOrm"
        src="./resource/logo_qxorm_small.jpg" width="168" height="40"></td>
      <td align="right" valign="middle"><font size="2"></font> </td>
    </tr>
  </tbody>
</table>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
France France
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions