630{
631 if (__sqlvar->sqlscale == 0) {
632
633 switch(__sqlvar->sqltype & ~1) {
634 case SQL_SHORT: {
635 switch (*_size) {
636 case sizeof(uint16_t) : {
637 *(uint16_t*)_buf =
638 (uint16_t)(
639 *(int16_t*)(__sqlvar->sqldata)
640 );
641 break;
642 }
643 case sizeof(uint32_t) : {
644 *(uint32_t*)_buf =
645 (uint32_t)(
646 *(int16_t*)(__sqlvar->sqldata)
647 );
648 break;
649 }
650 case sizeof(uint64_t) : {
651 *(uint64_t*)_buf =
652 (uint64_t)(
653 *(int16_t*)(__sqlvar->sqldata)
654 );
655 break;
656 }
657 default: {
658 *_size = sizeof(uint16_t);
660 return false;
661 }
662 }
663 break;
664 }
665 case SQL_LONG: {
666 switch (*_size) {
667 case sizeof(uint32_t) : {
668 *(uint32_t*)_buf =
669 (uint32_t)(
670 *(int32_t*)(__sqlvar->sqldata)
671 );
672 break;
673 }
674 case sizeof(int64_t) : {
675 *(uint64_t*)_buf =
676 (uint64_t)(
677 *(int32_t*)(__sqlvar->sqldata)
678 );
679 break;
680 }
681 default: {
682 *_size = sizeof(uint32_t);
684 return false;
685 }
686 }
687 break;
688 }
689 case SQL_INT64: {
690 switch (*_size) {
691 case sizeof(uint64_t) : {
692 *(uint64_t*)_buf =
693 (uint64_t)(
694 *(int64_t*)(__sqlvar->sqldata)
695 );
696 break;
697 }
698 default: {
699 *_size = sizeof(uint64_t);
701 return false;
702 }
703 }
704 break;
705 }
706 default: {
708 }
709 }
710 }
711 else {
712
714 switch(__sqlvar->sqltype & ~1) {
715 case SQL_SHORT: {
717 (*(int16_t*)(__sqlvar->sqldata))
718 / __divider32[-(__sqlvar->sqlscale)]
719 );
720 switch (*_size) {
721 case sizeof(int8_t) : {
724 return false;
725 }
726 *(uint8_t*)_buf = (uint8_t)
n.i16;
727 break;
728 }
729 case sizeof(int16_t) : {
730 *(uint16_t*)_buf = (uint16_t)
n.i16;
731 break;
732 }
733 case sizeof(int32_t) : {
734 *(uint32_t*)_buf = (uint32_t)
n.i16;
735 break;
736 }
737 case sizeof(int64_t) : {
738 *(uint64_t*)_buf = (uint64_t)
n.i16;
739 break;
740 }
741 default: {
742 *_size = sizeof(uint16_t);
744 return false;
745 }
746 }
747 break;
748 }
749 case SQL_LONG: {
751 (*(int32_t*)(__sqlvar->sqldata))
752 / __divider32[-(__sqlvar->sqlscale)]
753 );
754 switch (*_size) {
755 case sizeof(int8_t) : {
758 return false;
759 }
760 *(uint8_t*)_buf = (uint8_t)
n.i32;
761 break;
762 }
763 case sizeof(int16_t) : {
766 return false;
767 }
768 *(uint16_t*)_buf = (uint16_t)
n.i32;
769 break;
770 }
771 case sizeof(int32_t) : {
772 *(uint32_t*)_buf = (uint32_t)
n.i32;
773 break;
774 }
775 case sizeof(int64_t) : {
776 *(uint64_t*)_buf = (uint64_t)
n.i32;
777 break;
778 }
779 default: {
780 *_size = sizeof(uint32_t);
782 return false;
783 }
784 }
785 break;
786 }
787 case SQL_INT64: {
788 n.i64 = *(int64_t*)(__sqlvar->sqldata)
789 / __divider64[-(__sqlvar->sqlscale)];
790 switch (*_size) {
791 case sizeof(int8_t) : {
794 return false;
795 }
796 *(uint8_t*)_buf = (uint8_t)
n.i64;
797 break;
798 }
799 case sizeof(int16_t) : {
802 return false;
803 }
804 *(uint16_t*)_buf = (uint16_t)
n.i64;
805 break;
806 }
807 case sizeof(int32_t) : {
810 return false;
811 }
812 *(uint32_t*)_buf = (uint32_t)
n.i64;
813 break;
814 }
815 case sizeof(int64_t) : {
816 *(uint64_t*)_buf = (uint64_t)
n.i64;
817 break;
818 }
819 default: {
820 *_size = sizeof(int64_t);
822 return false;
823 }
824 }
825 break;
826 }
827 default: {
829 }
830 }
831 }
832 return true;
833}