312{
313 switch (__sqltype & SQLTYPE) {
314 case SQLSMINT:
315 case SQLINT:
316 case SQLSERIAL: {
317 switch (_size) {
318 case sizeof(uint8_t) : {
319 __data.i32 = (int32_t) * (uint8_t*)_val;
320 __sqlvar->sqltype = CLONGTYPE;
321 __sqlvar->sqllen = sizeof(int32_t);
322 break;
323 }
324 case sizeof(uint16_t) : {
325 __data.i32 = (int32_t) * (uint16_t*)_val;
326 __sqlvar->sqltype = CLONGTYPE;
327 __sqlvar->sqllen = sizeof(int32_t);
328 break;
329 }
330 case sizeof(uint32_t) : {
331 __data.i32 = (int32_t) * (uint32_t*)_val;
332 __sqlvar->sqltype = CLONGTYPE;
333 __sqlvar->sqllen = sizeof(int32_t);
334 break;
335 }
336 case sizeof(uint64_t) : {
337 __data.i64 = (int64_t) * (uint32_t*)_val;
338 __sqlvar->sqltype = CBIGINTTYPE;
339 __sqlvar->sqllen = sizeof(bigint);
340 break;
341 }
342 default: {
344 return false;
345 }
346 }
347 break;
348 }
349 case SQLINT8:
350 case SQLSERIAL8:
351 case SQLINFXBIGINT:
352 case SQLBIGSERIAL: {
353 switch (_size) {
354 case sizeof(uint8_t) : {
355 __data.i64 = (int64_t) * (uint8_t*)_val;
356 __sqlvar->sqltype = CBIGINTTYPE;
357 __sqlvar->sqllen = sizeof(int32_t);
358 break;
359 }
360 case sizeof(uint16_t) : {
361 __data.i64 = (int64_t) * (uint16_t*)_val;
362 __sqlvar->sqltype = CBIGINTTYPE;
363 __sqlvar->sqllen = sizeof(int32_t);
364 break;
365 }
366 case sizeof(uint32_t) : {
367 __data.i64 = (int64_t) * (uint32_t*)_val;
368 __sqlvar->sqltype = CBIGINTTYPE;
369 __sqlvar->sqllen = sizeof(int32_t);
370 break;
371 }
372 case sizeof(uint64_t) : {
373 __data.i64 = (int64_t) * (uint32_t*)_val;
374 __sqlvar->sqltype = CBIGINTTYPE;
375 __sqlvar->sqllen = sizeof(bigint);
376 break;
377 }
378 default: {
380 return false;
381 }
382 }
383 break;
384 }
385 default: {
387 return false;
388 }
389 }
390
391 __sqlvar->sqldata = (char*)&__data;
392 return true;
393}