00001 #include <stdlib.h>
00002 #include <string.h>
00003 #include "gis.h"
00004 #include "dbmi.h"
00005
00012 dbColumn *
00013 db_get_table_column (dbTable *table, int n)
00014 {
00015 if (n < 0 || n >= table->numColumns)
00016 return ((dbColumn *)NULL);
00017 return &table->columns[n];
00018 }
00019
00026 dbValue *
00027 db_get_column_value (dbColumn *column)
00028 {
00029 return &column->value;
00030 }
00031
00038 dbValue *
00039 db_get_column_default_value (dbColumn *column)
00040 {
00041 return &column->defaultValue;
00042 }
00043
00050 void
00051 db_set_column_sqltype (dbColumn *column, int sqltype)
00052 {
00053 column->sqlDataType = sqltype;
00054 }
00055
00062 void
00063 db_set_column_host_type (dbColumn *column, int type)
00064 {
00065 column->hostDataType = type;
00066 }
00067
00074 int
00075 db_get_column_scale (dbColumn *column)
00076 {
00077 return column->scale;
00078 }
00079
00086 void
00087 db_set_column_scale (dbColumn *column, int scale)
00088 {
00089 column->scale = scale;
00090 }
00091
00098 int
00099 db_get_column_precision (dbColumn *column)
00100 {
00101 return column->precision;
00102 }
00103
00110 void
00111 db_set_column_precision (dbColumn *column, int precision)
00112 {
00113 column->precision = precision;
00114 }
00115
00122 int
00123 db_get_column_sqltype (column)
00124 dbColumn *column;
00125 {
00126 return column->sqlDataType;
00127 }
00128
00129 int
00130 db_get_column_host_type (column)
00131 dbColumn *column;
00132 {
00133 return column->hostDataType;
00134 }
00135
00142 void
00143 db_set_column_has_defined_default_value(column)
00144 dbColumn *column;
00145 {
00146 column->hasDefaultValue = DB_DEFINED;
00147 }
00148
00155 void
00156 db_set_column_has_undefined_default_value(column)
00157 dbColumn *column;
00158 {
00159 column->hasDefaultValue = DB_UNDEFINED;
00160 }
00161
00168 void
00169 db_unset_column_has_default_value(column)
00170 dbColumn *column;
00171 {
00172 column->hasDefaultValue = 0;
00173 }
00174
00181 int
00182 db_test_column_has_default_value(column)
00183 dbColumn *column;
00184 {
00185 return (column->hasDefaultValue != 0);
00186 }
00187
00194 int
00195 db_test_column_has_defined_default_value(column)
00196 dbColumn *column;
00197 {
00198 return (column->hasDefaultValue == DB_DEFINED);
00199 }
00200
00207 int
00208 db_test_column_has_undefined_default_value(column)
00209 dbColumn *column;
00210 {
00211 return (column->hasDefaultValue == DB_UNDEFINED);
00212 }
00213
00220 void
00221 db_set_column_use_default_value(column)
00222 dbColumn *column;
00223 {
00224 column->useDefaultValue = 1;
00225 }
00226
00233 void
00234 db_unset_column_use_default_value(column)
00235 dbColumn *column;
00236 {
00237 column->useDefaultValue = 0;
00238 }
00239
00246 int
00247 db_test_column_use_default_value(column)
00248 dbColumn *column;
00249 {
00250 return (column->useDefaultValue != 0);
00251 }
00252
00259 void
00260 db_set_column_null_allowed(column)
00261 dbColumn *column;
00262 {
00263 column->nullAllowed = 1;
00264 }
00265
00272 void
00273 db_unset_column_null_allowed(column)
00274 dbColumn *column;
00275 {
00276 column->nullAllowed = 0;
00277 }
00278
00285 int
00286 db_test_column_null_allowed(column)
00287 dbColumn *column;
00288 {
00289 return (column->nullAllowed != 0);
00290 }
00291
00298 int
00299 db_get_column_length (column)
00300 dbColumn *column;
00301 {
00302 return column->dataLen;
00303 }
00304
00311 void
00312 db_set_column_length (column, length)
00313 dbColumn *column;
00314 int length;
00315 {
00316 column->dataLen = length;
00317 }
00318
00325 void
00326 db_set_column_select_priv_granted (column)
00327 dbColumn *column;
00328 {
00329 column->select = DB_GRANTED;
00330 }
00331
00338 void
00339 db_set_column_select_priv_not_granted (column)
00340 dbColumn *column;
00341 {
00342 column->select = DB_NOT_GRANTED;
00343 }
00344
00351 int
00352 db_get_column_select_priv (column)
00353 dbColumn *column;
00354 {
00355 return column->select;
00356 }
00357
00364 void
00365 db_set_column_update_priv_granted (column)
00366 dbColumn *column;
00367 {
00368 column->update = DB_GRANTED;
00369 }
00370
00377 void
00378 db_set_column_update_priv_not_granted (column)
00379 dbColumn *column;
00380 {
00381 column->update = DB_NOT_GRANTED;
00382 }
00383
00390 int
00391 db_get_column_update_priv (column)
00392 dbColumn *column;
00393 {
00394 return column->update;
00395 }
00396
00403 void
00404 db_init_column (column)
00405 dbColumn *column;
00406 {
00407 db_zero ((void *)column, sizeof(dbColumn));
00408 db_init_string (&column->columnName);
00409 db_init_string (&column->description);
00410 db_init_string (&column->value.s);
00411 db_init_string (&column->defaultValue.s);
00412 }
00413
00420 int
00421 db_set_column_name (column, name)
00422 dbColumn *column;
00423 char *name;
00424 {
00425 return db_set_string (&column->columnName, name);
00426 }
00427
00434 char *
00435 db_get_column_name (column)
00436 dbColumn *column;
00437 {
00438 return db_get_string (&column->columnName);
00439 }
00440
00447 int
00448 db_set_column_description (column, description)
00449 dbColumn *column;
00450 char *description;
00451 {
00452 return db_set_string (&column->description, description);
00453 }
00454
00461 char *
00462 db_get_column_description (column)
00463 dbColumn *column;
00464 {
00465 return db_get_string (&column->description);
00466 }
00467
00474 void
00475 db_free_column (column)
00476 dbColumn *column;
00477 {
00478 db_free_string (&column->columnName);
00479 db_free_string (&column->value.s);
00480 }
00481