| 860 | |
| 861 | |
| 862 | str value_to_string(const db_val_t * v) |
| 863 | { |
| 864 | |
| 865 | static char buff[64]; |
| 866 | str rez; |
| 867 | rez.s = NULL; |
| 868 | rez.len = 0; |
| 869 | |
| 870 | |
| 871 | if( v->nul ) |
| 872 | { |
| 873 | rez.s = "\0"; |
| 874 | rez.len = 1; |
| 875 | return rez; |
| 876 | } |
| 877 | |
| 878 | |
| 879 | |
| 880 | switch ( v->type) |
| 881 | { |
| 882 | case (DB_INT): |
| 883 | sprintf(buff,"%d",v->val.int_val); |
| 884 | rez.s = buff; |
| 885 | rez.len = strlen(rez.s); |
| 886 | break; |
| 887 | case (DB_BIGINT): |
| 888 | sprintf(buff,"%lld",v->val.bigint_val); |
| 889 | rez.s = buff; |
| 890 | rez.len = strlen(rez.s); |
| 891 | break; |
| 892 | case( DB_DOUBLE): |
| 893 | sprintf(buff,"%f",v->val.double_val); |
| 894 | rez.s = buff; |
| 895 | rez.len = strlen(rez.s); |
| 896 | break; |
| 897 | case( DB_STRING): |
| 898 | rez.s = (char*) v -> val.string_val; |
| 899 | rez.len = strlen(rez.s); |
| 900 | break; |
| 901 | case(DB_STR): |
| 902 | rez = v ->val.str_val; |
| 903 | break; |
| 904 | case(DB_DATETIME): |
| 905 | ctime_r(&v->val.time_val, buff); |
| 906 | rez.s = buff; |
| 907 | rez.len = strlen(rez.s); |
| 908 | break; |
| 909 | case(DB_BLOB): |
| 910 | rez = v->val.blob_val; |
| 911 | break; |
| 912 | case(DB_BITMAP): |
| 913 | sprintf(buff,"%d",v -> val.bitmap_val); |
| 914 | rez.s = buff; |
| 915 | rez.len = strlen(rez.s); |
| 916 | break; |
| 917 | } |
| 918 | |
| 919 | if( rez.s == NULL ) |