valuefmt.c

Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <string.h>
00003 #include <grass/gis.h>
00004 #include <grass/dbmi.h>
00005 
00012 int
00013 db_convert_Cstring_to_value  (char *Cstring, int sqltype, dbValue *value)
00014 
00015 {
00016     int i;
00017     double d;
00018 
00019     switch (db_sqltype_to_Ctype(sqltype))
00020     {
00021     case DB_C_TYPE_STRING:
00022         return db_set_value_string(value, Cstring);
00023     case DB_C_TYPE_INT:
00024         i = 0;
00025         sscanf(Cstring, "%d", &i);
00026         db_set_value_int(value, i);
00027         break;
00028     case DB_C_TYPE_DOUBLE:
00029         d = 0.0;
00030         sscanf(Cstring, "%lf", &d);
00031         db_set_value_double(value, d);
00032         break;
00033     case DB_C_TYPE_DATETIME:
00034         return db_convert_Cstring_to_value_datetime (Cstring, sqltype, value);
00035     default:
00036         db_error("db_convert_Cstring_to_value(): unrecognized sqltype");
00037         return DB_FAILED;
00038     }
00039     return DB_OK;
00040 }
00041 
00048 int
00049 db_convert_value_to_string (dbValue *value, int sqltype, dbString *string)
00050 
00051 {
00052     char buf[64];
00053     char *bp;
00054 
00055     bp = buf;
00056     if (db_test_value_isnull(value))
00057     {
00058         *buf = 0;
00059     }
00060     else
00061     {
00062         switch (db_sqltype_to_Ctype(sqltype))
00063         {
00064         case DB_C_TYPE_INT:
00065             sprintf (buf, "%d",db_get_value_int(value));
00066             break;
00067         case DB_C_TYPE_DOUBLE:
00068             sprintf (buf, "%lf",db_get_value_double(value));
00069             G_trim_decimal(buf);
00070             break;
00071         case DB_C_TYPE_STRING:
00072             bp = db_get_value_string(value);
00073             break;
00074         case DB_C_TYPE_DATETIME:
00075             return db_convert_value_datetime_into_string (value, sqltype, string);
00076         default:
00077             db_error ("db_convert_value_into_string(): unrecongized sqltype-type");
00078             return DB_FAILED;
00079         }
00080     }
00081     return db_set_string(string, bp);
00082 }

Generated on Sun Apr 6 17:31:38 2008 for GRASS by  doxygen 1.5.5