GRASS Programmer's Manual
6.4.1(2011)
|
00001 #include <string.h> 00002 #include <grass/dbmi.h> 00003 00009 const char *db_sqltype_name(int sqltype) 00010 { 00011 static char buf[256]; 00012 int from, to; 00013 00014 switch (sqltype) { 00015 case DB_SQL_TYPE_CHARACTER: 00016 return "CHARACTER"; 00017 case DB_SQL_TYPE_NUMERIC: 00018 return "NUMERIC"; 00019 case DB_SQL_TYPE_DECIMAL: 00020 return "DECIMAL"; 00021 case DB_SQL_TYPE_SMALLINT: 00022 return "SMALLINT"; 00023 case DB_SQL_TYPE_INTEGER: 00024 return "INTEGER"; 00025 case DB_SQL_TYPE_REAL: 00026 return "REAL"; 00027 case DB_SQL_TYPE_DOUBLE_PRECISION: 00028 return "DOUBLE PRECISION"; 00029 case DB_SQL_TYPE_DATE: 00030 return "DATE"; 00031 case DB_SQL_TYPE_TIME: 00032 return "TIME"; 00033 case DB_SQL_TYPE_SERIAL: 00034 return "SERIAL"; 00035 case DB_SQL_TYPE_TEXT: 00036 return "TEXT"; 00037 } 00038 switch (sqltype & ~DB_DATETIME_MASK) { 00039 case DB_SQL_TYPE_TIMESTAMP: 00040 strcpy(buf, "TIMESTAMP "); 00041 break; 00042 case DB_SQL_TYPE_INTERVAL: 00043 strcpy(buf, "INTERVAL "); 00044 break; 00045 default: 00046 return "UNKNOWN"; 00047 } 00048 00049 db_interval_range(sqltype, &from, &to); 00050 00051 switch (from) { 00052 case DB_YEAR: 00053 strcat(buf, "YEAR"); 00054 break; 00055 case DB_MONTH: 00056 strcat(buf, "MONTH"); 00057 break; 00058 case DB_DAY: 00059 strcat(buf, "DAY"); 00060 break; 00061 case DB_HOUR: 00062 strcat(buf, "HOUR"); 00063 break; 00064 case DB_MINUTE: 00065 strcat(buf, "MINUTE"); 00066 break; 00067 case DB_SECOND: 00068 strcat(buf, "SECOND"); 00069 break; 00070 case DB_FRACTION: 00071 strcat(buf, "FRACTION"); 00072 break; 00073 } 00074 00075 if (from) 00076 strcat(buf, " to"); 00077 if (to) 00078 strcat(buf, " "); 00079 00080 switch (to) { 00081 case DB_YEAR: 00082 strcat(buf, "YEAR"); 00083 break; 00084 case DB_MONTH: 00085 strcat(buf, "MONTH"); 00086 break; 00087 case DB_DAY: 00088 strcat(buf, "DAY"); 00089 break; 00090 case DB_HOUR: 00091 strcat(buf, "HOUR"); 00092 break; 00093 case DB_MINUTE: 00094 strcat(buf, "MINUTE"); 00095 break; 00096 case DB_SECOND: 00097 strcat(buf, "SECOND"); 00098 break; 00099 case DB_FRACTION: 00100 strcat(buf, "FRACTION"); 00101 break; 00102 } 00103 00104 return buf; 00105 }