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