These drivers are compiled depending on present DB related libraries and 'configure' settings. Only the DBF driver is always compiled.
In general records in table are linked to vector entities by field number and category number. The field number identifies a database table and the category number identifies the record record. I.e. for unique combination mapset + map + field + category
exists one unique combination driver + database + table + row
. Each element may have none, one or more categories (cats). More cats are distinguished by field number (field). The flexibility of this approach even supports the extreme case, that one vector entity may be linked to attributes in different tables in different databases connected by different drivers at the same time.
The DBMI library contains drivers such as DBF, ODBC, MySQL and PostgreSQL. The functionality of the database support varies with the capabilities of the underlying RDBMS. Main features are multi-attributes support for various data types, also multiple tables may optionally be linked to one or many vector entity/ies. SQL (Structured Query Language) is used for all drivers, but in a limited implementation.
For DBMI architecture details please read Blazek et al. 2002 (see below).
See details here:
void db_calloc (int n, int m)
void db_malloc (int n)
void db_realloc (void s, int n)
void db_char_to_lowercase (char *s)
void db_char_to_uppercase (char *s)
void db_Cstring_to_lowercase (char *s)
void db_Cstring_to_uppercase (char *s)
int db_set_connection (dbConnection *connection )
dbToken db_get_cursor_token (dbCursor *cursor)
int db_alloc_cursor_column_flags (dbCursor *cursor)
int db_alloc_cursor_table (dbCursor *cursor, int ncols)
int db_get_cursor_number_of_columns (dbCursor *cursor)
int db_test_cursor_any_column_flag (dbCursor *cursor)
int db_test_cursor_any_column_for_update (dbCursor *cursor)
int db_test_cursor_column_flag (dbCursor *cursor, int col)
int db_test_cursor_mode_insensitive (dbCursor *cursor)
int db_test_cursor_mode_scroll (dbCursor *cursor)
int db_test_cursor_type_fetch (dbCursor *cursor)
int db_test_cursor_type_insert (dbCursor *cursor)
int db_test_cursor_type_update (dbCursor *cursor)
void db_free_cursor_column_flags (dbCursor *cursor)
void db_free_cursor (dbCursor *cursor)
void db_init_cursor (dbCursor *cursor)
void db_set_cursor_column_flag (dbCursor *cursor, int col)
void db_set_cursor_column_for_update (dbCursor *cursor, int col)
void db_set_cursor_mode (dbCursor *cursor, int mode)
void db_set_cursor_mode_insensitive (dbCursor *cursor)
void db_set_cursor_mode_scroll (dbCursor *cursor)
void db_set_cursor_table (dbCursor *cursor, dbTable *table)
void db_set_cursor_token (dbCursor *cursor, dbToken token)
void db_set_cursor_type_insert (dbCursor *cursor)
void db_set_cursor_type_readonly (dbCursor *cursor)
void db_set_cursor_type_update (dbCursor *cursor)
void db_unset_cursor_column_flag (dbCursor *cursor, int col)
void db_unset_cursor_column_for_update (dbCursor *cursor, int col)
void db_unset_cursor_mode (dbCursor *cursor)
void db_unset_cursor_mode_insensitive (dbCursor *cursor)
void db_unset_cursor_mode_scroll (dbCursor *cursor)
char *db_get_default_driver ( void )
char *db_get_default_group_name ( void )
char *db_get_default_schema_name ( void )
int db_commit_transaction (dbDriver driver)
int db_execute_immediate (dbDriver driver, dbString *SQLstatement)
int db_copy_table_by_ints ()
int db_copy_table_select ()
int db_copy_table_where ()
int db_start_driver_open_database ()
Last change: