ImagingTools Core SDK
ISqlDatabaseObjectDelegate.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtSql/QSqlRecord>
7
8// ImtCore includes
9#include <imtbase/IMetaInfoCreator.h>
10#include <imtdb/IDatabaseObjectDelegate.h>
11
12
13namespace imtdb
14{
15
16
21{
22public:
26 virtual QByteArray GetObjectIdFromRecord(const QSqlRecord& record) const = 0;
27
31 virtual QByteArray GetObjectTypeIdFromRecord(const QSqlRecord& record) const = 0;
32
37 const QSqlRecord& record,
38 idoc::MetaInfoPtr& objectMetaInfoPtr,
39 idoc::MetaInfoPtr& collectionItemMetaInfoPtr) const = 0;
40
44 virtual istd::IChangeableUniquePtr CreateObjectFromRecord(
45 const QSqlRecord& record,
46 const iprm::IParamsSet* paramsPtr = nullptr) const = 0;
47
51 virtual QVariant GetElementInfoFromRecord(const QSqlRecord& record, const QByteArray& infoId) const = 0;
52
56 virtual QByteArray CreateUpdateMetaInfoQuery(const QSqlRecord& record) const = 0;
57
61 virtual QByteArray GetTableName() const = 0;
62
66 virtual QByteArray GetTableScheme() const = 0;
67};
68
69
70} // namespace imtdb
71
72
Core ORM interface for object-to-database mapping and SQL query generation.
virtual QByteArray GetObjectTypeIdFromRecord(const QSqlRecord &record) const =0
virtual QVariant GetElementInfoFromRecord(const QSqlRecord &record, const QByteArray &infoId) const =0
virtual bool CreateObjectInfoFromRecord(const QSqlRecord &record, idoc::MetaInfoPtr &objectMetaInfoPtr, idoc::MetaInfoPtr &collectionItemMetaInfoPtr) const =0
virtual QByteArray GetTableScheme() const =0
virtual QByteArray GetTableName() const =0
virtual QByteArray GetObjectIdFromRecord(const QSqlRecord &record) const =0
virtual QByteArray CreateUpdateMetaInfoQuery(const QSqlRecord &record) const =0
virtual istd::IChangeableUniquePtr CreateObjectFromRecord(const QSqlRecord &record, const iprm::IParamsSet *paramsPtr=nullptr) const =0
Database Abstraction Layer (ORM Framework) for ImtCore applications.