GRASS Programmer's Manual 6.4.1(2011)
|
00001 #include <stdlib.h> 00002 #include <string.h> 00003 #include <grass/gis.h> 00004 #include <grass/dbmi.h> 00005 00011 dbColumn *db_get_table_column(dbTable * table, int n) 00012 { 00013 if (n < 0 || n >= table->numColumns) 00014 return ((dbColumn *) NULL); 00015 return &table->columns[n]; 00016 } 00017 00023 dbValue *db_get_column_value(dbColumn * column) 00024 { 00025 return &column->value; 00026 } 00027 00033 dbValue *db_get_column_default_value(dbColumn * column) 00034 { 00035 return &column->defaultValue; 00036 } 00037 00044 void db_set_column_sqltype(dbColumn * column, int sqltype) 00045 { 00046 column->sqlDataType = sqltype; 00047 } 00048 00054 void db_set_column_host_type(dbColumn * column, int type) 00055 { 00056 column->hostDataType = type; 00057 } 00058 00064 int db_get_column_scale(dbColumn * column) 00065 { 00066 return column->scale; 00067 } 00068 00074 void db_set_column_scale(dbColumn * column, int scale) 00075 { 00076 column->scale = scale; 00077 } 00078 00084 int db_get_column_precision(dbColumn * column) 00085 { 00086 return column->precision; 00087 } 00088 00094 void db_set_column_precision(dbColumn * column, int precision) 00095 { 00096 column->precision = precision; 00097 } 00098 00105 int db_get_column_sqltype(dbColumn * column) 00106 { 00107 return column->sqlDataType; 00108 } 00109 00110 int db_get_column_host_type(dbColumn * column) 00111 { 00112 return column->hostDataType; 00113 } 00114 00120 void db_set_column_has_defined_default_value(dbColumn * column) 00121 { 00122 column->hasDefaultValue = 1; 00123 } 00124 00130 void db_set_column_has_undefined_default_value(dbColumn * column) 00131 { 00132 column->hasDefaultValue = 0; 00133 } 00134 00140 void db_unset_column_has_default_value(dbColumn * column) 00141 { 00142 column->hasDefaultValue = 0; 00143 } 00144 00150 int db_test_column_has_default_value(dbColumn * column) 00151 { 00152 return (column->hasDefaultValue != 0); 00153 } 00154 00160 int db_test_column_has_defined_default_value(dbColumn * column) 00161 { 00162 return (column->hasDefaultValue); 00163 } 00164 00170 int db_test_column_has_undefined_default_value(dbColumn * column) 00171 { 00172 return (!column->hasDefaultValue); 00173 } 00174 00180 void db_set_column_use_default_value(dbColumn * column) 00181 { 00182 column->useDefaultValue = 1; 00183 } 00184 00190 void db_unset_column_use_default_value(dbColumn * column) 00191 { 00192 column->useDefaultValue = 0; 00193 } 00194 00200 int db_test_column_use_default_value(dbColumn * column) 00201 { 00202 return (column->useDefaultValue != 0); 00203 } 00204 00210 void db_set_column_null_allowed(dbColumn * column) 00211 { 00212 column->nullAllowed = 1; 00213 } 00214 00220 void db_unset_column_null_allowed(dbColumn * column) 00221 { 00222 column->nullAllowed = 0; 00223 } 00224 00230 int db_test_column_null_allowed(dbColumn * column) 00231 { 00232 return (column->nullAllowed != 0); 00233 } 00234 00240 int db_get_column_length(dbColumn * column) 00241 { 00242 return column->dataLen; 00243 } 00244 00250 void db_set_column_length(dbColumn * column, int length) 00251 { 00252 column->dataLen = length; 00253 } 00254 00260 void db_set_column_select_priv_granted(dbColumn * column) 00261 { 00262 column->select = DB_GRANTED; 00263 } 00264 00270 void db_set_column_select_priv_not_granted(dbColumn * column) 00271 { 00272 column->select = DB_NOT_GRANTED; 00273 } 00274 00280 int db_get_column_select_priv(dbColumn * column) 00281 { 00282 return column->select; 00283 } 00284 00290 void db_set_column_update_priv_granted(dbColumn * column) 00291 { 00292 column->update = DB_GRANTED; 00293 } 00294 00300 void db_set_column_update_priv_not_granted(dbColumn * column) 00301 { 00302 column->update = DB_NOT_GRANTED; 00303 } 00304 00310 int db_get_column_update_priv(dbColumn * column) 00311 { 00312 return column->update; 00313 } 00314 00320 void db_init_column(dbColumn * column) 00321 { 00322 db_zero((void *)column, sizeof(dbColumn)); 00323 db_init_string(&column->columnName); 00324 db_init_string(&column->description); 00325 db_init_string(&column->value.s); 00326 db_init_string(&column->defaultValue.s); 00327 } 00328 00334 int db_set_column_name(dbColumn * column, const char *name) 00335 { 00336 return db_set_string(&column->columnName, name); 00337 } 00338 00344 const char *db_get_column_name(dbColumn * column) 00345 { 00346 return db_get_string(&column->columnName); 00347 } 00348 00354 int db_set_column_description(dbColumn * column, const char *description) 00355 { 00356 return db_set_string(&column->description, description); 00357 } 00358 00364 const char *db_get_column_description(dbColumn * column) 00365 { 00366 return db_get_string(&column->description); 00367 } 00368 00374 void db_free_column(dbColumn * column) 00375 { 00376 db_free_string(&column->columnName); 00377 db_free_string(&column->value.s); 00378 /* match init? */ 00379 db_free_string(&column->description); 00380 db_free_string(&column->defaultValue.s); 00381 }