6#include "SqlConnection.hpp"
7#include "SqlQuery/MigrationPlan.hpp"
8#include "SqlServerType.hpp"
16struct SqlQualifiedTableColumnName;
30 [[nodiscard]]
virtual std::string_view
BooleanLiteral(
bool value)
const noexcept = 0;
33 [[nodiscard]]
virtual std::string
StringLiteral(std::string_view value)
const noexcept = 0;
36 [[nodiscard]]
virtual std::string
StringLiteral(
char value)
const noexcept = 0;
45 [[nodiscard]]
virtual std::string
Insert(std::string_view intoTable,
46 std::string_view fields,
47 std::string_view values)
const = 0;
53 [[nodiscard]]
virtual std::string
SelectAll(
bool distinct,
54 std::string_view fields,
55 std::string_view fromTable,
56 std::string_view fromTableAlias,
57 std::string_view tableJoins,
58 std::string_view whereCondition,
59 std::string_view orderBy,
60 std::string_view groupBy)
const = 0;
64 std::string_view fields,
65 std::string_view fromTable,
66 std::string_view fromTableAlias,
67 std::string_view tableJoins,
68 std::string_view whereCondition,
69 std::string_view orderBy,
70 size_t count)
const = 0;
74 std::string_view fields,
75 std::string_view fromTable,
76 std::string_view fromTableAlias,
77 std::string_view tableJoins,
78 std::string_view whereCondition,
79 std::string_view orderBy,
80 std::string_view groupBy,
82 std::size_t limit)
const = 0;
86 std::string_view fromTable,
87 std::string_view fromTableAlias,
88 std::string_view tableJoins,
89 std::string_view whereCondition)
const = 0;
92 [[nodiscard]]
virtual std::string
Update(std::string_view table,
93 std::string_view tableAlias,
94 std::string_view setFields,
95 std::string_view whereCondition)
const = 0;
98 [[nodiscard]]
virtual std::string
Delete(std::string_view fromTable,
99 std::string_view fromTableAlias,
100 std::string_view tableJoins,
101 std::string_view whereCondition)
const = 0;
103 using StringList = std::vector<std::string>;
106 [[nodiscard]]
virtual std::string
ColumnType(SqlColumnTypeDefinition
const& type)
const = 0;
109 [[nodiscard]]
virtual StringList
CreateTable(std::string_view tableName,
110 std::vector<SqlColumnDeclaration>
const& columns)
const = 0;
113 [[nodiscard]]
virtual StringList
AlterTable(std::string_view tableName,
114 std::vector<SqlAlterTableCommand>
const& commands)
const = 0;
117 [[nodiscard]]
virtual StringList
DropTable(std::string_view
const& tableName)
const = 0;