Commit Graph

548 Commits

Author SHA1 Message Date
silverqx
e79be8906c used __has_include() to check mysql.h
Used __has_include() in #if macro directives instead of checking
_MSC_VER or __MINGW32__ to include mysql.h file.

 - also modified #error directive calls
2022-03-06 12:22:04 +01:00
silverqx
4fc92a6e53 updated comment 2022-03-01 16:13:49 +01:00
silverqx
c932f091c4 updated comments and renamed method
- clarified comments about connect/reconnect logic
   in the DatabaseConnection
 - renamed refreshQtConnection() method.
2022-03-01 15:30:17 +01:00
silverqx
39b92f5716 bugfix during disconnect
Do nothing if TinyORM connection is not resolved.

 - also throw RuntimeError in getRawQtConnection() if TinyORM
   connection is not resolved
2022-03-01 15:28:51 +01:00
silverqx
839a9fe16f exported (dll) DetectsLostConnections 2022-03-01 15:24:24 +01:00
silverqx
136a32c5fe added DatabaseConnection::isOpen()
It is a proxy to the QSqlDatabase::isOpen() method.
2022-03-01 15:23:08 +01:00
silverqx
fbee3297ac handle lost connection during transactions
- bugfix reset transactions when lost connection occurs during
   commit()/rollBack()/savepoint()/rollBackToSavepoint() method calls
 - enhanced beginTransaction(), reconnect when connection was lost
2022-02-23 11:29:28 +01:00
silverqx
d5ad16fb06 added SIZE constant 2022-02-20 15:21:49 +01:00
silverqx
e4a7ec5593 added todo tasks 2022-02-14 17:26:27 +01:00
silverqx
1991c8a959 modified Model's CRTP problem exception 2022-02-14 17:26:10 +01:00
silverqx
c165469f5d bugfix return QString for __tiny_func__ 2022-02-14 17:25:08 +01:00
silverqx
5956cb86c5 added OrmError base class for all exceptions 2022-02-14 17:23:31 +01:00
silverqx
a898660dfa enable/disable debugging of SQL queries
Added possibility to enable/disable debugging of SQL queries per
connection (logging to the console using qDebug()).
2022-02-12 18:49:26 +01:00
silverqx
df0c1d666a added todo tasks 2022-02-12 13:17:05 +01:00
silverqx
cde15172c0 shared_ptr for DatabaseManager factory methods
Refactored from an unique_ptr to shared_ptr, I think this is a better
approach. Now it will be clear that a few DatabaseManager pointers are
stored somewhere in the TinyORM.

 - return std:shared_ptr from DatabaseManager factory methods
 - store a shared_ptr<DatabaseManager> in private data members in
   DatabaseManager and DB classes
2022-02-10 15:02:43 +01:00
silverqx
ac32a6d3c4 qmake enhanced precompiled headers 2022-02-09 07:41:47 +01:00
silverqx
76ad095241 added Concerns::ExplainQueries
It is not enabled because Qt sql driver doesn't support EXPLAIN queries.
2022-01-18 11:07:57 +01:00
silverqx
71d22f2034 unified almost all throw exceptions 2022-01-17 19:07:59 +01:00
silverqx
245fd10a70 removed fixed todo task 2022-01-17 16:42:48 +01:00
silverqx
043e26b920 removed empty cpp files 2022-01-17 16:25:29 +01:00
silverqx
880e0bac65 bugfix bad usage of Q_ASSERT() 2022-01-17 15:28:23 +01:00
silverqx
28568f2236 bugfix copy/move Model instance
In the release build HasRelationStore::m_relationStore will be always
empty during copied/moved operation.
In the debug mode are enabled Q_ASSERT() checks to inform a user.

A Model class can not be copied/moved during any HasRelationStore
operation.
2022-01-17 15:11:48 +01:00
silverqx
ed3f0b446e disabled copy/move ctors 2022-01-17 10:45:33 +01:00
silverqx
f61d777276 explicitly declared constructors 2022-01-17 10:37:03 +01:00
silverqx
1fcfefce94 init. QueryBuilder operators only once 2022-01-17 10:22:28 +01:00
silverqx
73fa6d2246 explicitly declared ctors
In QueryBuilder and JoinClause, to be clearly visible that deleted
assignment operators are expected.
2022-01-17 10:21:47 +01:00
silverqx
35f139fda9 removed const in Model::AttributeReference 2022-01-16 18:27:24 +01:00
silverqx
7a017855f8 disabled copy constructors
Disabled on all relations, tiny builder and all base classes
2022-01-16 18:26:40 +01:00
silverqx
8794b8b285 extracted relation types to own header file 2022-01-16 18:24:05 +01:00
silverqx
aeb20613a0 removed const in SqlError 2022-01-16 18:22:28 +01:00
silverqx
5cab0ae779 cleanup of DatabaseConnection 2022-01-15 11:46:58 +01:00
silverqx
1976a1ca1f revert removed alias
Clang tidy 12 buggy report, fixed in Clang tidy 13.
2022-01-15 11:18:05 +01:00
silverqx
b734a09b53 fixed includes and typos 2022-01-15 11:08:01 +01:00
silverqx
23ce64689f removed redundant protected specifier 2022-01-14 22:03:06 +01:00
silverqx
9b5ff78ef4 made logConnected()/logDisconnected() private 2022-01-14 22:00:57 +01:00
silverqx
bbfca1594e extracted transactions to ManagesTransactions
Transactions extracted to the Concerns::ManagesTransactions base class.

 - bugfix includes
 - logConnected()/logDisconnected() code wrapped in TINYORM_MYSQL_PING
 - hitTransactionalCounters() extracted to Concerns::CountsQueries
 - convertNamedToPositionalBindings() extracted to Concerns::LogsQueries
2022-01-14 21:26:02 +01:00
silverqx
ff0697e1a5 extracted logging queries to LogQueries
Logging queries extracted to the Concerns::LogsQueries base class.
2022-01-14 17:37:58 +01:00
silverqx
e188239e37 added public section 2022-01-14 16:39:50 +01:00
silverqx
ca2bc35519 added sections to DatabaseConnection 2022-01-14 16:29:46 +01:00
silverqx
b36888ae93 extracted queries counters to CountsQueries
Queries counters extracted to the Concerns::CountsQueries base class.

 - removed ConnectionInterface 😕😎🙌
 - all methods are returning DatabaseConnection & instead of
   ConnectionInterface
 - includes cleanup after extraction
2022-01-14 16:04:17 +01:00
silverqx
b57fa366ee reordered methods in QueryBuilder
- also added section comments
2022-01-13 21:37:29 +01:00
silverqx
dfcfcd19b9 disabled copy/move constructors for Connectors 2022-01-13 19:21:52 +01:00
silverqx
3b711d4876 removed const data members in all exceptions 2022-01-13 18:59:30 +01:00
silverqx
9317ca1b9c moved inline from defn. to decl. in QueryBuilder 2022-01-13 18:26:04 +01:00
silverqx
432099694f mini cleanup DatabaseConnection 2022-01-13 18:16:05 +01:00
silverqx
35a68dd0fd ReconnectorType alias moved to ormtypes.hpp 2022-01-13 17:08:56 +01:00
silverqx
c9cee67a13 removed DB alias to Orm::DB from global namespace 2022-01-13 15:40:11 +01:00
silverqx
097c2c0c22 cleanup, macro guards, inline, string/char literal
- explicit QStringLiteral and QChar
 - fixed macro guard names
 - inline from defn. to decl.
 - whitespaces and comments
 - added Q_DISABLE_COPY()
 - removed friend class DB; from DM
 - removed schemagrammar.cpp, was empty
2022-01-13 14:44:34 +01:00
silverqx
fb20fd8b9f cleanup, macro guards, inline
- removed expression.cpp, Query::Expression is header only now
 - fixed macro guard names
 - inline from defn. to decl.
2022-01-13 11:02:07 +01:00
silverqx
e7560c3733 removed todo task 2022-01-12 19:08:06 +01:00