H
Homunculus
Guest
Updated May 23, 2018
Current version: 3.3
GMSDB is a database system written entirely in GML that can be used in any kind of project requiring a flexible solution to store and retrieve organized data.
With GMSDB you can easily perform basic CRUD (create,read,update,delete) operations on data while applying custom clauses like filters, sorting, limits, offsets, calculations and join operations.
GMSDB also takes care of loading and saving the database data from and to the file system, and includes functions to export and import the data in various formats (like CSV).
Features
- Pure GML, doesn't require any external DLLs etc.
- Flexible and customizable query system
- Ability to sort, filter, limit, offset and join query results
- Internal saving / loading mechanism to persist the database to file
- Import and export table data from and to CSV file to be edited in excel or other editors
- Memory management functionalities
- Includes as an example a database viewer utility
- Well commented code and extensive documentation
Resource link: GMSDB - Markeplace
Documentation: Function reference, getting started and installation
Price: 4.99$
Version 3.3
May 23, 2018
This version is available only on GMS2. Please note that due to the scope of the changes, databases saved in the old versions are not compatible with this update.
Changes:
- Table defaults: each column can be assigned a default value that will be used when no value is specified on record creation
- Inserting records: you are no longer required to specify values for all columns (defaults will be used), and column order is no longer enforced
- Script arguments: All scripts requiring arguments to be passed as string of comma separated values have now been converted to an array equivalent.
- Memory management: it is now possible to load / unload specific tables from and to the file system, allowing better memory management
- Sort by virtual attribute: db_cl_sort now accepts a custom script that allows sorting by a custom virtual attribute. It is for example possible to sort by string_length, or by the result of any GML expression.
- CSV import: Importing data from CSV has been greatly improved. Headings are now used to match the table columns (instead of forcing a specific order like in previous versions). Extra columns in the CSV are skipped, while missing columns are accounted for by the new column defaults.
- Database explorer utility: Included as an example, a database viewer that can be imported into your project to view and debug your database data
- General minor fixes and improvements in stability and performance
Version 3.2
Uploaded March 10, 2017
Important: read the section about upgrading in the official docs before upgrading existing projects
Version 3.2 is focused on a new database saving mechanism, and GMS:2 compatibility. It is now much easier and faster to save your database, and a new option has been added to automatically save the database every time a change is made to its data and / or structure!
There have also been a number of changes and improvements in other aspect as well, here's a summary of the changes, but be sure to head to the provided docs for details:
Obsolete or renamed functions
Uploaded March 10, 2017
Important: read the section about upgrading in the official docs before upgrading existing projects
Version 3.2 is focused on a new database saving mechanism, and GMS:2 compatibility. It is now much easier and faster to save your database, and a new option has been added to automatically save the database every time a change is made to its data and / or structure!
There have also been a number of changes and improvements in other aspect as well, here's a summary of the changes, but be sure to head to the provided docs for details:
Obsolete or renamed functions
- db_load has been removed in favor of db_import and db_open
- db_table_save is now db_table_export
- db_table_load is now db_table_import
- db_table_save_csv is now db_table_export_csv
- db_table_load_csv is now db_table_import_csv
- db_save no longer requires a file name
- db_query_select no longer returns a ds_list of ids if only "id" is provided as field. Use db_query_select_ids instead
- db_table_create now also accepts columns as separate arguments. Also returns false if the table already exists.
- db_record_fetch, db_record_fetch_all now accept a third optional argument telling which specific columns to return
- db_open is now used to open or create databases
- db_autosave enables or disables the new autosave functionality
- db_list_tables returns the list of all tables in the db
- db_exists checks if a database exists with a given name
- db_close closes the current database
- db_import_legacy imports the old database format
- db_query_select_ids retuns the query results as a ds_list of record ids
- db_query_select_records returns the query results as a ds_list of records (as ds_maps)
- db_record_destroy deletes a record starting from its ds_map representation, and deletes the ds_map
- ds_grid_multisort sorts a ds_grid by multiple columns
Last edited by a moderator: