#firebird #parse #fbclient

bin+lib rfirebird

Provide a raw access to firebird database file

1 unstable release

0.1.0 Mar 24, 2023

#2070 in Database interfaces

MIT license

150KB
1K SLoC

rfirebird - Firebird tool for raw access the database files

Crate API github sponsors

This is a study and demonstration project. Only use this project with offline copy of your database file.

Examples

Tables of a database

cargo run tables dbs/employee.fdb
 name                     | is_system_table | relation
--------------------------+-----------------+----------
 RDB$PAGES                | true            | 0
 RDB$DATABASE             | true            | 1
 RDB$FIELDS               | true            | 2
 RDB$INDEX_SEGMENTS       | true            | 3

Columns of a table

cargo run columns dbs/employee.fdb sales
 position | name         | size | type      | scale | is_not_null | is_computed
----------+--------------+------+-----------+-------+-------------+-------------
 0        | PO_NUMBER    | 8    | Char      | 0     | true        | false
 1        | CUST_NO      | 4    | Integer   | 0     | true        | false
 2        | SALES_REP    | 2    | Smallint  | 0     | false       | false

Values of a table

cargo run rows dbs/employee.fdb customer
 CUST_NO | CUSTOMER                  | CONTACT_FIRST | CONTACT_LAST  | PHONE_NO        | ADDRESS_LINE1               | ADDRESS_LINE2 | CITY              | STATE_PROVINCE | COUNTRY     | POSTAL_CODE | ON_HOLD
---------+---------------------------+---------------+---------------+-----------------+-----------------------------+---------------+-------------------+----------------+-------------+-------------+---------
 1001    | Signature Design          | Dale J.       | Little        | (619) 530-2710  | 15500 Pacific Heights Blvd. |               | San Diego         | CA             | USA         | 92121       |
 1002    | Dallas Technologies       | Glen          | Brown         | (214) 960-2233  | P. O. Box 47000             |               | Dallas            | TX             | USA         | 75205       | *

Goals

  • Open database files
  • Access tables
  • Read data rows
  • Handle big database files
  • Support firebird 1.0 files
  • Support firebird 2.0 files
  • Support firebird 3.0 files
  • Support firebird 4.0 files

Types

  • Varchar
  • Char
  • Int
  • SmallInt
  • Float
  • Decimal
  • Numeric
  • Timestamp
  • Date
  • Time

CLI

  • Open .fdb files
  • List tables
  • Show records of a table

References

Dependencies

~0.4–1.6MB
~32K SLoC