157 case sizeof(int8_t) : {
158 __data.i32 = (int32_t) * (int8_t*)_val;
159 __bind->buffer_type = MYSQL_TYPE_LONG;
160 __bind->buffer_length =
sizeof(int32_t);
161 __bind->buffer = &__data;
164 case sizeof(int16_t) : {
165 __data.i32 = (int32_t) * (int16_t*)_val;
166 __bind->buffer_type = MYSQL_TYPE_LONG;
167 __bind->buffer_length =
sizeof(int32_t);
168 __bind->buffer = &__data;
171 case sizeof(int32_t) : {
172 __data.i32 = (int32_t) * (int32_t*)_val;
173 __bind->buffer_type = MYSQL_TYPE_LONG;
174 __bind->buffer_length =
sizeof(int32_t);
175 __bind->buffer = &__data;
178 case sizeof(int64_t) : {
179 __data.i64 = (int64_t) * (int64_t*)_val;
180 __bind->buffer_type = MYSQL_TYPE_LONGLONG;
181 __bind->buffer_length =
sizeof(int64_t);
182 __bind->buffer = &__data;
190 __bind->is_unsigned = 0;
195 case sizeof(uint8_t) : {
196 __data.u32 = (uint32_t) * (uint8_t*)_val;
197 __bind->buffer_type = MYSQL_TYPE_LONG;
198 __bind->buffer_length =
sizeof(uint32_t);
199 __bind->buffer = &__data;
202 case sizeof(uint16_t) : {
203 __data.u32 = (uint32_t) * (uint16_t*)_val;
204 __bind->buffer_type = MYSQL_TYPE_LONG;
205 __bind->buffer_length =
sizeof(uint32_t);
206 __bind->buffer = &__data;
209 case sizeof(uint32_t) : {
210 __data.u32 = (uint32_t) * (uint32_t*)_val;
211 __bind->buffer_type = MYSQL_TYPE_LONG;
212 __bind->buffer_length =
sizeof(uint32_t);
213 __bind->buffer = &__data;
216 case sizeof(uint64_t) : {
217 __data.u64 = (uint64_t) * (uint64_t*)_val;
218 __bind->buffer_type = MYSQL_TYPE_LONGLONG;
219 __bind->buffer_length =
sizeof(uint64_t);
220 __bind->buffer = &__data;
228 __bind->is_unsigned = 1;
233 case sizeof(float) : {
234 __data.f32 = *(
float*)_val;
235 __bind->buffer_type = MYSQL_TYPE_FLOAT;
236 __bind->buffer_length =
sizeof(float);
237 __bind->buffer = &__data;
240 case sizeof(double) : {
241 __data.f64 = *(
double*)_val;
242 __bind->buffer_type = MYSQL_TYPE_DOUBLE;
243 __bind->buffer_length =
sizeof(double);
244 __bind->buffer = &__data;
258 __data.time.month = p->
month;
259 __data.time.day = p->
day;
260 __data.time.hour = 0;
261 __data.time.minute = 0;
262 __data.time.second = 0;
263 __data.time.second_part = 0;
264 __data.time.neg = p->
year < 0 ? 1 : 0;
265 __data.time.time_type = MYSQL_TIMESTAMP_DATE;
266 __bind->buffer_type = MYSQL_TYPE_DATE;
267 __bind->buffer_length =
sizeof(MYSQL_TIME);
268 __bind->buffer = &__data;
279 __data.time.year = 0;
280 __data.time.month = 0;
283 __data.time.minute = p->
min;
284 __data.time.second = p->
sec;
285 __data.time.second_part = p->
frac / 1000;
287 __data.time.time_type = MYSQL_TIMESTAMP_TIME;
288 __bind->buffer_type = MYSQL_TYPE_TIME;
289 __bind->buffer_length =
sizeof(MYSQL_TIME);
290 __bind->buffer = &__data;
308 __data.time.month = p->
month;
309 __data.time.day = p->
day;
310 __data.time.hour = p->
hour;
311 __data.time.minute = p->
min;
312 __data.time.second = p->
sec;
313 __data.time.second_part = p->
frac / 1000;
314 __data.time.neg = p->
year < 0 ? 1 : 0;
315 __data.time.time_type = MYSQL_TIMESTAMP_DATETIME;
316 __bind->buffer_type = MYSQL_TYPE_DATETIME;
317 __bind->buffer_length =
sizeof(MYSQL_TIME);
318 __bind->buffer = &__data;
329 __data.time.year = 0;
330 __data.time.month = 0;
335 __data.time.second_part =
__ABS(p->
fracs) / 1000;
338 __data.time.time_type = MYSQL_TIMESTAMP_TIME;
339 __bind->buffer_type = MYSQL_TYPE_TIME;
340 __bind->buffer_length =
sizeof(MYSQL_TIME);
341 __bind->buffer = &__data;
355 __bind->buffer_type = MYSQL_TYPE_STRING;
356 __bind->buffer_length = (
unsigned int) _size;
357 __bind->buffer = _val;
361 if (_size != (
size_t)-1 && _size >
UINT32_MAX) {
365 __bind->buffer_type = MYSQL_TYPE_STRING;
366 __bind->buffer_length = 0;
367 __bind->buffer =
NULL;
378 __bind->is_null_value = 0;
379 Param::__dataType = _sqlType;