00001 #include <stdlib.h> 00002 #include <string.h> 00003 #include <grass/gis.h> 00004 #include <grass/dbmi.h> 00005 00011 dbColumn * 00012 db_get_table_column (dbTable *table, int n) 00013 { 00014 if (n < 0 || n >= table->numColumns) 00015 return ((dbColumn *)NULL); 00016 return &table->columns[n]; 00017 } 00018 00024 dbValue * 00025 db_get_column_value (dbColumn *column) 00026 { 00027 return &column->value; 00028 } 00029 00035 dbValue * 00036 db_get_column_default_value (dbColumn *column) 00037 { 00038 return &column->defaultValue; 00039 } 00040 00047 void 00048 db_set_column_sqltype (dbColumn *column, int sqltype) 00049 { 00050 column->sqlDataType = sqltype; 00051 } 00052 00058 void 00059 db_set_column_host_type (dbColumn *column, int type) 00060 { 00061 column->hostDataType = type; 00062 } 00063 00069 int 00070 db_get_column_scale (dbColumn *column) 00071 { 00072 return column->scale; 00073 } 00074 00080 void 00081 db_set_column_scale (dbColumn *column, int scale) 00082 { 00083 column->scale = scale; 00084 } 00085 00091 int 00092 db_get_column_precision (dbColumn *column) 00093 { 00094 return column->precision; 00095 } 00096 00102 void 00103 db_set_column_precision (dbColumn *column, int precision) 00104 { 00105 column->precision = precision; 00106 } 00107 00114 int 00115 db_get_column_sqltype (dbColumn *column) 00116 00117 { 00118 return column->sqlDataType; 00119 } 00120 00121 int 00122 db_get_column_host_type (dbColumn *column) 00123 00124 { 00125 return column->hostDataType; 00126 } 00127 00133 void 00134 db_set_column_has_defined_default_value (dbColumn *column) 00135 00136 { 00137 column->hasDefaultValue = 1; 00138 } 00139 00145 void 00146 db_set_column_has_undefined_default_value (dbColumn *column) 00147 00148 { 00149 column->hasDefaultValue = 0; 00150 } 00151 00157 void 00158 db_unset_column_has_default_value (dbColumn *column) 00159 00160 { 00161 column->hasDefaultValue = 0; 00162 } 00163 00169 int 00170 db_test_column_has_default_value (dbColumn *column) 00171 00172 { 00173 return (column->hasDefaultValue != 0); 00174 } 00175 00181 int 00182 db_test_column_has_defined_default_value (dbColumn *column) 00183 00184 { 00185 return (column->hasDefaultValue); 00186 } 00187 00193 int 00194 db_test_column_has_undefined_default_value (dbColumn *column) 00195 00196 { 00197 return (!column->hasDefaultValue); 00198 } 00199 00205 void 00206 db_set_column_use_default_value (dbColumn *column) 00207 00208 { 00209 column->useDefaultValue = 1; 00210 } 00211 00217 void 00218 db_unset_column_use_default_value (dbColumn *column) 00219 00220 { 00221 column->useDefaultValue = 0; 00222 } 00223 00229 int 00230 db_test_column_use_default_value (dbColumn *column) 00231 00232 { 00233 return (column->useDefaultValue != 0); 00234 } 00235 00241 void 00242 db_set_column_null_allowed (dbColumn *column) 00243 00244 { 00245 column->nullAllowed = 1; 00246 } 00247 00253 void 00254 db_unset_column_null_allowed (dbColumn *column) 00255 00256 { 00257 column->nullAllowed = 0; 00258 } 00259 00265 int 00266 db_test_column_null_allowed (dbColumn *column) 00267 00268 { 00269 return (column->nullAllowed != 0); 00270 } 00271 00277 int 00278 db_get_column_length (dbColumn *column) 00279 00280 { 00281 return column->dataLen; 00282 } 00283 00289 void 00290 db_set_column_length (dbColumn *column, int length) 00291 00292 { 00293 column->dataLen = length; 00294 } 00295 00301 void 00302 db_set_column_select_priv_granted (dbColumn *column) 00303 00304 { 00305 column->select = DB_GRANTED; 00306 } 00307 00313 void 00314 db_set_column_select_priv_not_granted (dbColumn *column) 00315 00316 { 00317 column->select = DB_NOT_GRANTED; 00318 } 00319 00325 int 00326 db_get_column_select_priv (dbColumn *column) 00327 00328 { 00329 return column->select; 00330 } 00331 00337 void 00338 db_set_column_update_priv_granted (dbColumn *column) 00339 00340 { 00341 column->update = DB_GRANTED; 00342 } 00343 00349 void 00350 db_set_column_update_priv_not_granted (dbColumn *column) 00351 00352 { 00353 column->update = DB_NOT_GRANTED; 00354 } 00355 00361 int 00362 db_get_column_update_priv (dbColumn *column) 00363 00364 { 00365 return column->update; 00366 } 00367 00373 void 00374 db_init_column (dbColumn *column) 00375 00376 { 00377 db_zero ((void *)column, sizeof(dbColumn)); 00378 db_init_string (&column->columnName); 00379 db_init_string (&column->description); 00380 db_init_string (&column->value.s); 00381 db_init_string (&column->defaultValue.s); 00382 } 00383 00389 int 00390 db_set_column_name (dbColumn *column, char *name) 00391 00392 { 00393 return db_set_string (&column->columnName, name); 00394 } 00395 00401 char * 00402 db_get_column_name (dbColumn *column) 00403 00404 { 00405 return db_get_string (&column->columnName); 00406 } 00407 00413 int 00414 db_set_column_description (dbColumn *column, char *description) 00415 00416 { 00417 return db_set_string (&column->description, description); 00418 } 00419 00425 char * 00426 db_get_column_description (dbColumn *column) 00427 00428 { 00429 return db_get_string (&column->description); 00430 } 00431 00437 void 00438 db_free_column (dbColumn *column) 00439 00440 { 00441 db_free_string (&column->columnName); 00442 db_free_string (&column->value.s); 00443 } 00444