606{
607 if (__sqlvar->sqlscale == 0) {
608
609 switch(__sqlvar->sqltype & ~1) {
610 case SQL_SHORT: {
611 switch (*_size) {
612 case sizeof(uint16_t) : {
613 *(uint16_t*)_pv =
614 (uint16_t)(
615 *(int16_t*)(__sqlvar->sqldata)
616 );
617 break;
618 }
619 case sizeof(uint32_t) : {
620 *(uint32_t*)_pv =
621 (uint32_t)(
622 *(int16_t*)(__sqlvar->sqldata)
623 );
624 break;
625 }
626 case sizeof(uint64_t) : {
627 *(uint64_t*)_pv =
628 (uint64_t)(
629 *(int16_t*)(__sqlvar->sqldata)
630 );
631 break;
632 }
633 default: {
634 *_size = sizeof(uint16_t);
636 return false;
637 }
638 }
639 break;
640 }
641 case SQL_LONG: {
642 switch (*_size) {
643 case sizeof(uint32_t) : {
644 *(uint32_t*)_pv =
645 (uint32_t)(
646 *(int32_t*)(__sqlvar->sqldata)
647 );
648 break;
649 }
650 case sizeof(int64_t) : {
651 *(uint64_t*)_pv =
652 (uint64_t)(
653 *(int32_t*)(__sqlvar->sqldata)
654 );
655 break;
656 }
657 default: {
658 *_size = sizeof(uint32_t);
660 return false;
661 }
662 }
663 break;
664 }
665 case SQL_INT64: {
666 switch (*_size) {
667 case sizeof(uint64_t) : {
668 *(uint64_t*)_pv =
669 (uint64_t)(
670 *(int64_t*)(__sqlvar->sqldata)
671 );
672 break;
673 }
674 default: {
675 *_size = sizeof(uint64_t);
677 return false;
678 }
679 }
680 break;
681 }
682 default: {
684 }
685 }
686 }
687 else {
688
690 switch(__sqlvar->sqltype & ~1) {
691 case SQL_SHORT: {
693 (*(int16_t*)(__sqlvar->sqldata))
694 / __divider32[-(__sqlvar->sqlscale)]
695 );
696 switch (*_size) {
697 case sizeof(int8_t) : {
700 return false;
701 }
702 *(uint8_t*)_pv = (uint8_t)
n.i16;
703 break;
704 }
705 case sizeof(int16_t) : {
706 *(uint16_t*)_pv = (uint16_t)
n.i16;
707 break;
708 }
709 case sizeof(int32_t) : {
710 *(uint32_t*)_pv = (uint32_t)
n.i16;
711 break;
712 }
713 case sizeof(int64_t) : {
714 *(uint64_t*)_pv = (uint64_t)
n.i16;
715 break;
716 }
717 default: {
718 *_size = sizeof(uint16_t);
720 return false;
721 }
722 }
723 break;
724 }
725 case SQL_LONG: {
727 (*(int32_t*)(__sqlvar->sqldata))
728 / __divider32[-(__sqlvar->sqlscale)]
729 );
730 switch (*_size) {
731 case sizeof(int8_t) : {
734 return false;
735 }
736 *(uint8_t*)_pv = (uint8_t)
n.i32;
737 break;
738 }
739 case sizeof(int16_t) : {
742 return false;
743 }
744 *(uint16_t*)_pv = (uint16_t)
n.i32;
745 break;
746 }
747 case sizeof(int32_t) : {
748 *(uint32_t*)_pv = (uint32_t)
n.i32;
749 break;
750 }
751 case sizeof(int64_t) : {
752 *(uint64_t*)_pv = (uint64_t)
n.i32;
753 break;
754 }
755 default: {
756 *_size = sizeof(uint32_t);
758 return false;
759 }
760 }
761 break;
762 }
763 case SQL_INT64: {
764 n.i64 = *(int64_t*)(__sqlvar->sqldata)
765 / __divider64[-(__sqlvar->sqlscale)];
766 switch (*_size) {
767 case sizeof(int8_t) : {
770 return false;
771 }
772 *(uint8_t*)_pv = (uint8_t)
n.i64;
773 break;
774 }
775 case sizeof(int16_t) : {
778 return false;
779 }
780 *(uint16_t*)_pv = (uint16_t)
n.i64;
781 break;
782 }
783 case sizeof(int32_t) : {
786 return false;
787 }
788 *(uint32_t*)_pv = (uint32_t)
n.i64;
789 break;
790 }
791 case sizeof(int64_t) : {
792 *(uint64_t*)_pv = (uint64_t)
n.i64;
793 break;
794 }
795 default: {
796 *_size = sizeof(int64_t);
798 return false;
799 }
800 }
801 break;
802 }
803 default: {
805 }
806 }
807 }
808 return true;
809}