7 mutable char data[N]{};
9 consteval auto addData(std::string_view str,
size_t& current_size)
const {
10 for (
size_t i = 0; i < str.size(); ++i) {
11 data[current_size++] = str[i];
14 consteval auto addData(
size_t index,
size_t& current_size)
const {
15 data[current_size++] =
static_cast<char>(index + 48);
37 .field_data_type =
"INTEGER"},
60 for (
const auto& item : arr) {
62 item.field_name.size() + item.field_data_type.size() + 5;
70 for (; index < arr.size(); ++index) {
71 auto& item = arr[index];
72 size += item.field_name.size();
73 if (item.field_data_type ==
"INTEGER") {
89 for (
const auto& item : arr) {
90 size += item.field_name.size() + 2;
96constexpr auto tables_name = std::to_array({
"printed_page",
"printer_config"});
97constexpr std::string_view
page_head_str =
"CREATE TABLE \"printed_page\" (\n";
98constexpr std::string_view
config_head_str =
"CREATE TABLE \"printer_config\" (\n";
99constexpr std::string_view
tail_str =
"PRIMARY KEY(\"id\" AUTOINCREMENT)\n)";
124 size_t current_size = 0;
130 for (
const auto& item : arr) {
131 dat.addData(
"\"", current_size);
132 dat.addData(item.field_name, current_size);
133 dat.addData(
"\" ", current_size);
134 dat.addData(item.field_data_type, current_size);
135 dat.addData(
",\n", current_size);
138 dat.addData(
"\0", current_size);
143 size_t current_size = 0;
144 for (
size_t i = 1; i < arr.size(); ++i) {
145 dat.addData(arr[i].field_name, current_size);
146 dat.addData(
" = ", current_size);
147 if (arr[i].field_data_type ==
"INTEGER") {
148 dat.addData(
"%", current_size);
150 dat.addData(i, current_size);
152 dat.addData(i / 10, current_size);
153 dat.addData(i % 10, current_size);
156 dat.addData(
"'%", current_size);
158 dat.addData(i, current_size);
160 dat.addData(i / 10, current_size);
161 dat.addData(i % 10, current_size);
163 dat.addData(
"'", current_size);
165 if (i != arr.size() - 1) {
166 dat.addData(
",\n", current_size);
168 dat.addData(
"\n", current_size);
171 dat.addData(
"\0", current_size);
175 size_t current_size = 0;
176 for (
size_t i = 0; i < arr.size(); ++i) {
177 dat.addData(arr[i].field_name, current_size);
178 if (i != arr.size() - 1) {
179 dat.addData(
",\n", current_size);
181 dat.addData(
"\n", current_size);
184 dat.addData(
"\0", current_size);
consteval auto selectStrPageClass()
定义 ModelsSql.h:108
consteval auto getSelectTableStrSize(const std::array< PrinterConfigToTable, N > &arr)
定义 ModelsSql.h:87
constexpr std::string_view page_head_str
定义 ModelsSql.h:97
consteval auto getCreateTableStr(const std::array< PrinterConfigToTable, N > &arr, auto dat)
定义 ModelsSql.h:122
constexpr auto update_config_table_str
only for QString, only fields, No Update etc.
定义 ModelsSql.h:208
consteval auto selectStrConfigClass()
定义 ModelsSql.h:118
consteval auto getSelectTableStr(auto arr, auto dat)
定义 ModelsSql.h:174
consteval auto updateStrPageClass()
定义 ModelsSql.h:105
consteval auto getUpdateTableStrSize(const std::array< PrinterConfigToTable, N > &arr)
定义 ModelsSql.h:67
constexpr auto select_config_table_str
only fields, No Select etc.
定义 ModelsSql.h:214
constexpr auto select_page_table_str
only fields, No Select etc.
定义 ModelsSql.h:200
constexpr auto printed_page_table_helper
定义 ModelsSql.h:44
consteval auto updateStrConfigClass()
定义 ModelsSql.h:115
consteval auto getCreateTableStrSize(const std::array< PrinterConfigToTable, N > &arr)
定义 ModelsSql.h:58
consteval auto creatStrPageClass()
定义 ModelsSql.h:100
constexpr std::string_view tail_str
定义 ModelsSql.h:99
constexpr auto tables_name
定义 ModelsSql.h:96
consteval auto getUpdateTableStr(auto arr, auto dat)
定义 ModelsSql.h:141
constexpr auto create_config_table_str
定义 ModelsSql.h:202
consteval auto creatStrConfigClass()
定义 ModelsSql.h:111
constexpr auto create_page_table_str
定义 ModelsSql.h:187
constexpr auto update_page_table_str
only for QString, only fields, No Update etc.
定义 ModelsSql.h:194
constexpr std::string_view config_head_str
定义 ModelsSql.h:98
constexpr auto printer_config_table_helper
定义 ModelsSql.h:24
consteval auto addData(std::string_view str, size_t ¤t_size) const
定义 ModelsSql.h:9
char data[N]
定义 ModelsSql.h:7
constexpr ConstexprTableStr()=default
consteval auto addData(size_t index, size_t ¤t_size) const
定义 ModelsSql.h:14
std::string_view field_data_type
定义 ModelsSql.h:21
std::string_view field_name
定义 ModelsSql.h:20