658{
659 if (__sqlvar->sqlscale == 0) {
660
661 switch(__sqlvar->sqltype & ~1) {
662 case SQL_BOOLEAN: {
663 switch (*_size) {
664 case sizeof(uint8_t) : {
665 *(uint8_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
666 break;
667 }
668 case sizeof(uint16_t) : {
669 *(uint16_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
670 break;
671 }
672 case sizeof(uint32_t) : {
673 *(uint32_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
674 break;
675 }
676 case sizeof(uint64_t) : {
677 *(uint64_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
678 break;
679 }
680 default: {
681 *_size = sizeof(uint8_t);
683 return false;
684 }
685 }
686 break;
687 }
688 case SQL_SHORT: {
689 switch (*_size) {
690 case sizeof(uint16_t) : {
691 *(uint16_t*)_buf = *(int16_t*)(__sqlvar->sqldata);
692 break;
693 }
694 case sizeof(uint32_t) : {
695 *(uint32_t*)_buf = *(int16_t*)(__sqlvar->sqldata);
696 break;
697 }
698 case sizeof(uint64_t) : {
699 *(uint64_t*)_buf = *(int16_t*)(__sqlvar->sqldata);
700 break;
701 }
702 default: {
703 *_size = sizeof(uint16_t);
705 return false;
706 }
707 }
708 break;
709 }
710 case SQL_LONG: {
711 switch (*_size) {
712 case sizeof(uint32_t) : {
713 *(uint32_t*)_buf = *(int32_t*)(__sqlvar->sqldata);
714 break;
715 }
716 case sizeof(int64_t) : {
717 *(uint64_t*)_buf = *(int32_t*)(__sqlvar->sqldata);
718 break;
719 }
720 default: {
721 *_size = sizeof(uint32_t);
723 return false;
724 }
725 }
726 break;
727 }
728 case SQL_INT64: {
729 switch (*_size) {
730 case sizeof(uint64_t) : {
731 *(uint64_t*)_buf = *(int64_t*)(__sqlvar->sqldata);
732 break;
733 }
734 default: {
735 *_size = sizeof(uint64_t);
737 return false;
738 }
739 }
740 break;
741 }
742 default: {
744 }
745 }
746 }
747 else {
748
749 __INT_TYPE n;
750 switch(__sqlvar->sqltype & ~1) {
751 case SQL_SHORT: {
753 (*(int16_t*)(__sqlvar->sqldata))
754 / __divider32[-(__sqlvar->sqlscale)]
755 );
756 switch (*_size) {
757 case sizeof(int8_t) : {
760 return false;
761 }
762 *(uint8_t*)_buf = (uint8_t)n.
i16;
763 break;
764 }
765 case sizeof(int16_t) : {
766 *(uint16_t*)_buf = (uint16_t)n.
i16;
767 break;
768 }
769 case sizeof(int32_t) : {
770 *(uint32_t*)_buf = (uint32_t)n.
i16;
771 break;
772 }
773 case sizeof(int64_t) : {
774 *(uint64_t*)_buf = (uint64_t)n.
i16;
775 break;
776 }
777 default: {
778 *_size = sizeof(uint16_t);
780 return false;
781 }
782 }
783 break;
784 }
785 case SQL_LONG: {
787 (*(int32_t*)(__sqlvar->sqldata))
788 / __divider32[-(__sqlvar->sqlscale)]
789 );
790 switch (*_size) {
791 case sizeof(int8_t) : {
794 return false;
795 }
796 *(uint8_t*)_buf = (uint8_t)n.
i32;
797 break;
798 }
799 case sizeof(int16_t) : {
802 return false;
803 }
804 *(uint16_t*)_buf = (uint16_t)n.
i32;
805 break;
806 }
807 case sizeof(int32_t) : {
808 *(uint32_t*)_buf = (uint32_t)n.
i32;
809 break;
810 }
811 case sizeof(int64_t) : {
812 *(uint64_t*)_buf = (uint64_t)n.
i32;
813 break;
814 }
815 default: {
816 *_size = sizeof(uint32_t);
818 return false;
819 }
820 }
821 break;
822 }
823 case SQL_INT64: {
824 n.
i64 = *(int64_t*)(__sqlvar->sqldata)
825 / __divider64[-(__sqlvar->sqlscale)];
826 switch (*_size) {
827 case sizeof(int8_t) : {
830 return false;
831 }
832 *(uint8_t*)_buf = (uint8_t)n.
i64;
833 break;
834 }
835 case sizeof(int16_t) : {
838 return false;
839 }
840 *(uint16_t*)_buf = (uint16_t)n.
i64;
841 break;
842 }
843 case sizeof(int32_t) : {
846 return false;
847 }
848 *(uint32_t*)_buf = (uint32_t)n.
i64;
849 break;
850 }
851 case sizeof(int64_t) : {
852 *(uint64_t*)_buf = (uint64_t)n.
i64;
853 break;
854 }
855 default: {
856 *_size = sizeof(int64_t);
858 return false;
859 }
860 }
861 break;
862 }
863 default: {
865 }
866 }
867 }
868 return true;
869}