67{
70
71 Field::__queryHandle = _queryHandle;
72 __index = _index;
73
74 try {
75 Field::__name = UTF8Decoder::decode(
76 sqlite3_column_name(
query()->stmt(), _index)
77 ).toUpperCase();
78
79 const char* column_decltype = sqlite3_column_decltype(
query()->stmt(), _index);
80 if (!column_decltype) {
81 column_decltype = "ANY";
82 }
83 __declType = UTF8Decoder::decode(column_decltype).toUpperCase();
84 }
85 catch (CharsetConvertException* _e) {
88 return false;
89 }
90
92 __index, __declType.data(), Field::__name.data());
93
94 if (__declType.contains(L"RV")) {
96 }
97 else if (__declType.contains(L"BIN")
98 || __declType.contains(L"BLO")
99 || __declType.contains(L"BY")) {
101 }
102 else if (__declType.contains(L"XT")
103 || __declType.contains(L"CH")
104 || __declType.contains(L"CL")
105 || __declType.contains(L"NG")){
107 }
108 else if (__declType.contains(L"DE")
109 || __declType.contains(L"NU")
110 || __declType.contains(L"MO")) {
112 }
113 else if (__declType.contains(L"BO")
114 || __declType.contains(L"TIN")
115 || __declType.contains(L"SM")) {
117 }
118 else if (__declType.contains(L"BIG")) {
120 }
121 else if (__declType.contains(L"INT")
122 || __declType.contains(L"SE")) {
124 }
125 else if (__declType.contains(L"RE")
126 || __declType.contains(L"FL")
127 || __declType.contains(L"DO")) {
129 }
130 else if (__declType.contains(L"ET")
131 || __declType.contains(L"ST")) {
133 }
134 else if (__declType.contains(L"DA")) {
136 }
137 else if (__declType.contains(L"ME")) {
139 }
140 else {
142 }
143
144 switch (Field::__dataType) {
147 __maxsize = sizeof(int64_t);
148 break;
150 __maxsize = sizeof(double);
151 break;
153 __maxsize = 133;
154 break;
156 __maxsize = sizeof(SQL::Date);
157 break;
160 __maxsize = sizeof(SQL::Time);
161 break;
164 __maxsize = sizeof(SQL::TimeStamp);
165 break;
167 __maxsize = sizeof(SQL::Interval);
168 break;
169 default:
171 }
172
173 return true;
174}
#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
#define __SET_ERROR_MSG(_message)
String toStringAll() const