Firebird database driver for Nim with help from the official python firebird-driver and nimpy
Linux only
- latest Nim , tested mainly against the current devel version
- python3.8.x or python3.9.x
- a Firebird3 or firebird4 server installation from your distro or see firebird
-
Tested on a firebird database with abt 7 million rows of tatoeba sentences
with a tatoeba links table which has abt 17 million rows.
The Firebird 4.0 Server lives on a Raspberry 4 8GB with Ubuntu 20.4 LTS.
- pip install firebird-driver
- nimble install nimcx
- nimble install nimpy
- nimble install https://github.com/qqtop/nimfdb
- some test programs benefit from zenity , nimcx has a cxzenity module available
| procedures | description |
|---|---|
| - [x] fbconnect | connect to a firebird database |
| - [x] fbdisconnect | disconnect from a database |
| - [x] fbquery | execute a query |
| - [x] showQuery | raw display of a select query output |
| - [x] showServerInfo | show data about the firebird server |
| - [x] showDbInfo | show data a connected database |
| - [x] showCursorInfo | show information about a connected select,insert cursor |
| - [x] showTablesAndFields | show available tables and their fields of a connected database |
| - [x] showCounts | show row counts of tables in a connected databases |
| - [x] getSecUsers | show users registered in security database and sec. plugin |
| - [x] dropDatabase | drops the database |
| - [x] fbBackup | local backup a databases |
| - [x] fbRestore | local restore a database from a backup with safety feature |
| - [x] fbGrant | grant user rights |
| - [x] fbRevoke | revoke user rights |
| - [x] addUser | add a new user |
| - [X] modifyUser | modify a user |
| - [x] deleteUser | delete a user |
| - [x] getRowCount | get row count from a tables |
| - [x] getPrimarkeys | returns primarkeys of a connectedion |
| - [x] showAllPrimarykeys | show all primarykeys |
| - [x] getAllIndexes | fetches indexes of a database |
| - [x] showAllIndexes | show all indexes of a database |
| - [x] getGenerators | fetches generators of a database |
| - [x] showAllGenerators | show all generators |
| - [x] getViews | fetches views of a databases |
| - [x] showAllViews | show all views |
| - [x] getUsers | registered users |
| - [x] createFbDatabase | database creation |
| - [x] createFbTable | table creation |
| - [x] createFbIndex | index creation |
| - [x] createGenerator | generator creation |
| - [x] createTrigger | trigger creation |
| - [x] getODS | ods version information |
| - [x] cleanQData | clean up query output from python artifacts |
| - [x] fbConStatus | shows connection status |
| - [x] utility functions | to parse python output |
| - [ ] transactions | transaction handling |
| - [ ] events | database event handling |
| - [ ] procedures | sql procedure handling |
| - [ ] scrollableCursor | scrollable cursor functions |
| - [ ] statistics | database statistics reporting |
| - [ ] logging | database logging |
| - [ ] nbackup | nbackup handling |
| - [ ] nrestore | nrestore handling |
| - [ ] shadow | database shadowing |
| - [ ] sweep | sweep handling |
| - [ ] repair | database repair handling |
| - [ ] streamblobs | streamblobs handling |
| - [ ] hooks management | database hooks handling |
| - [ ] timezone | timezone handling fb4 |
| - [ ] charsetconversion | character set handling |
| - [ ] examples | more examples ..... |
Main functions work fine , some of the administration functions need more testing against the underlying python api. Connections via embedded or tcp tested ok.
The python driver lives here firebird-driver
Read the firebird-driver-documentation
Read latest wisdom about Backup/Restore
For intensive administration use Flamerobin
Learn about the Firebird Project
Read the Firebird News
Thank You for Nimpy
January 2022
