fb-cpp 0.0.1
A modern C++ wrapper for the Firebird database API
Loading...
Searching...
No Matches
Descriptor.h
1/*
2 * MIT License
3 *
4 * Copyright (c) 2025 Adriano dos Santos Fernandes
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24
25#ifndef FBCPP_DESCRIPTOR_H
26#define FBCPP_DESCRIPTOR_H
27
28#include "fb-api.h"
29
30
34namespace fbcpp
35{
39 enum class DescriptorOriginalType : unsigned
40 {
41 NULL_TYPE = SQL_NULL,
42 TEXT = SQL_TEXT,
43 VARYING = SQL_VARYING,
44 SHORT = SQL_SHORT,
45 LONG = SQL_LONG,
46 FLOAT = SQL_FLOAT,
47 DOUBLE = SQL_DOUBLE,
48 TIMESTAMP = SQL_TIMESTAMP,
49 BLOB = SQL_BLOB,
50 TIME = SQL_TYPE_TIME,
51 DATE = SQL_TYPE_DATE,
52 INT64 = SQL_INT64,
53 TIMESTAMP_TZ = SQL_TIMESTAMP_TZ,
54 TIMESTAMP_TZ_EX = SQL_TIMESTAMP_TZ_EX,
55 TIME_TZ = SQL_TIME_TZ,
56 TIME_TZ_EX = SQL_TIME_TZ_EX,
57 INT128 = SQL_INT128,
58 DEC16 = SQL_DEC16,
59 DEC34 = SQL_DEC34,
60 BOOLEAN = SQL_BOOLEAN,
61 };
62
66 enum class DescriptorAdjustedType : unsigned
67 {
68 NULL_TYPE = SQL_NULL,
69 STRING = SQL_VARYING,
70 INT16 = SQL_SHORT,
71 INT32 = SQL_LONG,
72 FLOAT = SQL_FLOAT,
73 DOUBLE = SQL_DOUBLE,
74 TIMESTAMP = SQL_TIMESTAMP,
75 BLOB = SQL_BLOB,
76 TIME = SQL_TYPE_TIME,
77 DATE = SQL_TYPE_DATE,
78 INT64 = SQL_INT64,
79 TIMESTAMP_TZ = SQL_TIMESTAMP_TZ,
80 TIMESTAMP_TZ_EX = SQL_TIMESTAMP_TZ_EX,
81 TIME_TZ = SQL_TIME_TZ,
82 TIME_TZ_EX = SQL_TIME_TZ_EX,
83 INT128 = SQL_INT128,
84 DECFLOAT16 = SQL_DEC16,
85 DECFLOAT34 = SQL_DEC34,
86 BOOLEAN = SQL_BOOLEAN,
87 };
88
92 struct Descriptor final
93 {
94 DescriptorOriginalType originalType;
95 DescriptorAdjustedType adjustedType;
96 int scale;
97 unsigned length;
98 unsigned offset;
99 unsigned nullOffset;
100 bool isNullable;
101 // FIXME: more things
102 };
103} // namespace fbcpp
104
105
106#endif // FBCPP_DESCRIPTOR_H
fb-cpp namespace.
Definition Attachment.h:42
DescriptorAdjustedType
Descriptor adjusted type.
Definition Descriptor.h:67
DescriptorOriginalType
Descriptor original type.
Definition Descriptor.h:40
Describes a parameter or column.
Definition Descriptor.h:93