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