This Tcl module is the Bbuuzzb database engine and has the file name dbeng.tcl. All table,record/field access is performed by procedures in this module.
Each database table is an OS file. A table can have as many records as you have available disk space. Each record is made up of a series of fields. Fields are referenced by field number starting from the beginning of the record. All table data is typeless so all data is in string format. The database engine and API's page contains a complete discussion of the engine file format and limitations.
The engine manages all table access through an array called dbeng_table. Each time a table is opened, a unique positive integer is generated called a tid. Both the single user and client/server API's use tids to access table data.
This module contains two types of procedures:
The internal procedures contained in this module should only be called by other procedures in this module. When writing applications that use this API, make your calls to db_ procedures only.
Here is a list of procedures in this module:
This module is part of the single user database access and requires the following modules:
There are a number of good example applications that use this engine including:
The following modules are required along with this module:
Declaration : proc db_initialize {}
Returns : dbeng code
This procedure will initialize the Bbuuzzb database engine by reading the configuration file.
Declaration : proc db_end {}
Returns : dbeng code
This procedure will shutdown the database engine by closing all the tables in use.
Declaration : proc db_open {fname tid}
Parameters :
Name : fname
Type : string
Description : path/file name
Name : tid
Type : positive integer
Description : returned tid
Returns : dbeng code
This procedure will open a table. The table ID is returned in the returned tid upon success. If the system catalog flag is on, only logical table names listed in the system catalog will succeed unless the name is prefixed with the DBENG_CATALOG_FNAME_IND character.
Declaration : proc db_close {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will close a table.
Declaration : proc db_next {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will obtain the next record in the table along with advancing the file position to the beginning of the following record. The record contents will be loaded in the tid's dbeng_table array rec element. Use the procedure db_get_rec to obtain the record contents.
Declaration : proc db_get_rec_num {tid rec_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : rec_num
Type : positive integer
Description : returned record number
Returns : dbeng code
This procedure will get the record number for the specified tid. The record number is actually retrieved from the dbeng_table array member record_number. Upon success the record number will be loaded into the returned record number.
Declaration : proc db_get_pos {tid pos}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : pos
Type : integer
Description : returned record position
Returns : dbeng code
This procedure will get the file position/offset for the current record and the specified tid. The file position is actually retrieved from the dbeng_table array member orig_position. Upon success the file position will be loaded into the returned record position. Note that the position returned is not the current position (which is usually the end of the record) but the starting position of the current record.
Declaration : proc db_set_pos {tid pos}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : pos
Type : integer
Description : channel position/offset
Returns : dbeng code
This procedure will set the channel position to the specified channel position/offset. An engine error will be logged if the channel position/offset is not the first byte in a record header. To obtain the channel position of the desired record, use the function db_get_pos once you have located the desired record.
Declaration : proc db_get_change_rec_flag {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : returned change record flag
Returns : dbeng code
This procedure will get the change_rec_flag for the specified tid. Upon success, the flag will be loaded into the returned change record flag.
Declaration : proc db_set_change_rec_flag {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : change record flag
Returns : dbeng code
This procedure will set the specified tid change_rec_flag. The value of change record flag must be zero or one.
Declaration : proc db_get_delete_flag {tid flag_value}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag_value
Type : boolean flag
Description : returned flag value
Returns : dbeng code
This procedure will get the tid process_deleted flag. This flag indicates whether records marked for deletion are included in table/record processing.
Declaration : proc db_set_delete_flag {tid flag_value}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag_value
Type : boolean flag
Description : flag value
Returns : dbeng code
This procedure will set the tid process_deleted flag to the given flag value which must be zero or one. The process_deleted flag indicates whether records marked for deletion are included in table/record processing.
Declaration : proc db_get_enf_change_rec_flag {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : returned enforce change record flag
Returns : dbeng code
This procedure will get the enforce_change_rec_flag for the specified tid. Upon success, the flag will be loaded into the returned enforce change record flag.
Declaration : proc db_set_enf_change_rec_flag {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : enforce change record flag
Returns : dbeng code
This procedure will set the specified tid enforce_change_rec_flag. The value of enforce change record flag must be zero or one.
Declaration : proc db_get_autopack {tid pvalue}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : pvalue
Type : boolean flag
Description : returned autopack value
Returns : dbeng code
This procedure will obtain the current value of the autopack threshold for a single table. Upon success, the table autopack value will be returned in the returned autopack value.
Declaration : proc db_set_autopack {tid pvalue}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : pvalue
Type : boolean flag
Description : autopack value
Returns : dbeng code
This procedure will set the autopack threshold for a single table. Note that a zero autopack value will turn off the autopack feature for the given table.
Declaration : proc db_get_is_table_locked {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : returned table locked flag
Returns : dbeng code
This procedure will retrieve the tid is_table_locked flag and load it into the returned table locked flag.
Declaration : proc db_set_is_table_locked {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : flag
Type : boolean flag
Description : is table locked flag
Returns : dbeng code
This procedure will set the tid is_table_locked flag to the value of is table locked flag which must be zero or one.
Declaration : proc db_top {int tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will move the channel position to the top of the table before the first record in the table.
Declaration : proc db_get_rec_count {tid acount dcount}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : acount
Type : integer
Description : returned active record count
Name : dcount
Type : integer
Description : returned deleted record count
Returns : dbeng code
This procedure will get the table record counts and load the active record count into the returned active record count and load the deleted record count into the returned deleted record count. Note that this procedure does not physically count the records in the table (as the procedure db_count does).
Declaration : proc db_goto {tid rec_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : rec_num
Type : positive integer
Description : record number
Returns : dbeng code
This procedure will goto to a specific record number within the table. The record number is a sequential number starting from the top of the table.
Declaration : proc db_count {tid acount dcount}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : acount
Type : integer
Description : returned active record count
Name : dcount
Type : integer
Description : returned deleted record count
Returns : dbeng code
This procedure will physically count the number of records in the table. The active record count is loaded into the returned active record count and the deleted record count is loaded into the returned deleted record count upon success. The actual table active_record_count and the deleted_record_count will not be affected by the count.
Declaration : proc db_pack {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will pack a table by physically removing all records marked for deletion. Packing involves copying all active records to a temporary table and then swapping the actual table for the temporary table.
Declaration : proc db_copy_table {src_tid dest_tid}
Parameters :
Name : src_tid
Type : positive integer
Description : source tid
Name : dest_tid
Type : positive integer
Description : destination tid
Returns : dbeng code
This procedure will copy a table from source tid to destination tid. No regard is given to whether the destination tid table already contains data.
Declaration : proc db_new {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will prepare for a new record. The following dbeng_table array values are affected:
This procedure should be called before loading a new record.
Declaration : proc db_get_rec {tid rec_out}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : rec_out
Type : string
Description : output record
Returns : dbeng code
This procedure will load the current record into the output record. The channel position will not be advanced.
Declaration : proc db_get_rec_size {tid rec_size}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : rec_size
Type : integer
Description : output record size
Returns : dbeng code
This procedure will load the size (in bytes) of the current record into the output record size.
Declaration : proc db_get_field_size {tid fnum field_size}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : field_size
Type : integer
Description : output field size
Returns : dbeng code
This procedure will load the size (in bytes) of the field number into the output field size.
Declaration : proc db_get_subfield_size {tid fnum sfnum sfsize}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : sfsize
Type : integer
Description : output subfield size
Returns : dbeng code
This procedure will load the size (in bytes) of the subfield number into the output subfield size.
Declaration : proc db_get_subsubfield_size {tid fnum sfnum ssfnum ssfsize}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : ssfnum
Type : positive integer
Description : subsubfield number
Name : ssfsize
Type : integer
Description : output subsubfield size
Returns : dbeng code
This procedure will load the size (in bytes) of the subsubfield number into the output subsubfield size.
Declaration : proc db_write {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will write the current record to the table. The record will be re-written if the record already existed or a new record will be written if the record did not previously exist.
Declaration : proc db_delete {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will delete the tid current record. The record is not actually deleted from the table but is marked for deletion. Once the db_pack or db_sort procedure is called, the table will be re-written and the records marked for deletion are removed.
Declaration : proc db_get_nfields {tid nfields}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : nfields
Type : integer
Description : returned number of fields
Returns : dbeng code
This procedure will get the number of fields in the current record for the tid. Upon success the number of fields in the record will be loaded into the returned number of fields.
Declaration : proc db_get_nsubfields {tid fnum nsubfields)
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : nsubfields
Type : integer
Description : returned number of subfields
Returns : dbeng code
This procedure will get the number of subfields in the field number for the tid. Upon success the number of subfields will be loaded into the returned number of subfields.
Declaration : proc db_get_nsubsubfields {tid fnum sfnum nsubsubfields}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : nsubsubfields
Type : integer
Description : returned number of subsubfields
Returns : dbeng code
This procedure will get the number of subsubfields in the subfield number within the field number for the tid. Upon success the number of subsubfields will be loaded into the returned number of subsubfields.
Declaration : proc db_get_field {tid fnum field_out}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : field_out
Type : string
Description : output field
Returns : dbeng code
This procedure will load the contents of the field field number into the output field.
Declaration : proc db_get_subfield {tid fnum sfnum sfout}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : sfout
Type : string
Description : output subfield
Returns : dbeng code
This procedure will load the contents of the subfield subfield number into the output subfield.
Declaration : proc db_get_subsubfield {tid fnum sfnum ssfnum ssfout}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : ssfnum
Type : positive integer
Description : subsubfield number
Name : ssfout
Type : string
Description : output subsubfield
Returns : dbeng code
This procedure will load the contents of the subsubfield subsubfield number into the output subsubfield.
Declaration : proc db_put_field {tid field_num field_data}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : field_num
Type : positive integer
Description : field number
Name : field_data
Type : string
Description : field data string
Returns : dbeng code
This procedure will put the field data string into the record buffer at the indicated field number. If the field number does not exist, the record buffer will be extended out to the required field.
Declaration : proc db_put_subfield {tid fnum sfnum sfdata}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : sfdata
Type : string
Description : subfield data
Returns : dbeng code
This procedure will put the subfield data into the record buffer at the indicated field number and subfield number. If the field number or subfield number does not exist, the record buffer will be extended out to the required subfield.
Declaration : proc db_put_subsubfield {tid fnum sfnum ssfnum ssfdata}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : ssfnum
Type : positive integer
Description : subsubfield number
Name : ssfdata
Type : string
Description : subsubfield data
Returns : dbeng code
This procedure will put the subsubfield data into the record buffer at the indicated field number, subfield number and subsubfield number. If the field number, subfield number or subsubfield number does not exist, the record buffer will be extended out to the required subsubfield.
Declaration : proc db_find {tid cs_flag fdata field_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : cs_flag
Type : boolean flag
Description : case flag
Name : fdata
Type : string
Description : find data
Name : field_num
Type : positive integer
Description : returned field number
Returns : dbeng code
This procedure will search all fields in all records (starting from the current record) for the find data. Only complete/whole fields will match. Comparison is according to the case flag where zero is case sensitive and one is case insensitive. Upon a successful match, the matching record will be current and the returned field number will indicate the field that matched.
Declaration : proc db_find_field {tid cs_flag fdata field_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : cs_flag
Type : boolean flag
Description : case flag
Name : fdata
Type : string
Description : find data
Name : field_num
Type : positive integer
Description : field number
Returns : dbeng code
This procedure will search field number in all records (starting from the current record) for the find data. Only complete/whole fields will match. Comparison is according to the case flag where zero is case sensitive and one is case insensitive.
Declaration : proc db_find_part {tid cs_flag fdata field_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : cs_flag
Type : boolean flag
Description : case flag
Name : fdata
Type : string
Description : find data
Name : field_num
Type : positive integer
Description : returned field number
Returns : dbeng code
This procedure will search all fields in all records (starting from the current record) for the find data. Any part of any field will match. Comparison is according to the case flag where zero is case sensitive and one is case insensitive. Upon a successful match, the matching record will be current and the returned field number will indicate the field that matched.
Declaration : proc db_find_field_part {tid cs_flag fdata field_num}
Parameters :
Name : tid
Type : positive integer
Description : tid
Name : cs_flag
Type : boolean flag
Description : case flag
Name : fdata
Type : string
Description : find data
Name : field_num
Type : positive integer
Description : field number
Returns : dbeng code
This procedure will search field number in all records (starting from the current record) for the find data. Any part of the field will match. Comparison is according to the case flag where zero is case sensitive and one is case insensitive.
Declaration : proc db_new_table {fname tid}
Parameters :
Name : fname
Type : string
Description : path/file name
Name : tid
Type : integer
Description : input tid flag and output tid
Returns : dbeng code
This procedure will create a new empty table using the path/file name. If the input tid flag is one, the table will also be opened and upon successful completion, the new table tid will be returned in the output tid. The path/file name may be in two parts separated by a comma which will indicate the logical table name followed by the physical name, ie:
test.primary,/hd1/bbuuzzb/tables/test.buz
Do not put spaces before or after the comma. If the two part form is used, an entry in the catalog will be made (whether or not the catalog flag is on). An entry will the same logical name must not already exist. If the two part form is not used, a physical file name is assumed (do not prefix the physical file name with DBENG_CATALOG_FNAME_IND as in db_open).
Declaration : proc db_delete_table {tname}
Parameters :
Name : tname
Type : string
Description : table name
Returns : dbeng code
This procedure will delete a table by its table name (physical file name if the catalog flag is down, logical table name with the catalog flag high). The table must not be open by any tid.
Declaration : proc db_get_open_table_list {pat list_out}
Parameters :
Name : pat
Type : string
Description : match pattern
Name : list_out
Type : string
Description : returned open table list
Returns : dbeng code
This procedure will return a list of all open tables in the returned open table list. The list consists of each open table tid followed by a comma and the table path/file name. Each entry in the list is delimited by DBENG_LIST_DELIM defined in dbmess.h. The match pattern may contain a table path/file pattern acceptable to the Tcl string match command. If the match pattern is empty, all tables in use will be returned.
Declaration : proc db_exist {tname exist_flag}
Parameters :
Name : tname
Type : string
Description : table name
Name : exist_flag
Type : boolean flag
Description : returned exist flag
Returns : dbeng code
This procedure will determine whether a database table exists. table name convention is the same as for db_open.
Declaration : proc db_clear_table {tname}
Parameters :
Name : tname
Type : string
Description : table name
Returns : dbeng code
This procedure will clear a table of all its data by its table name (physical file name when the catalog flag is down, logical table name when the catalog flag is high). Table must not be open by any tid.
Declaration : proc db_delete_field (tid fnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : positive integer
Description : field number
Returns : dbeng code
This procedure will completely remove the field number field from the current record. Note that all field numbers past the field being deleted will change.
Declaration : proc db_delete_subfield {tid fnum sfnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Returns : dbeng code
This procedure will completely remove the subfield number subfield from the field number field within the current record.
Declaration : proc db_delete_subsubfield {tid fnum sfnum ssfnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : positive integer
Description : field number
Name : sfnum
Type : positive integer
Description : subfield number
Name : ssfnum
Type : positive integer
Description : subsubfield number
Returns : dbeng code
This procedure will completely remove the subsubfield number subsubfield from the subfield number subfield in the field number field within the current record.
Declaration : proc dbeng_is_systable {tid flag}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : flag
Type : boolean flag
Description : returned system table flag
Returns : dbeng code
This procedure will obtain the current value of is_systable dbeng_table array element for the specified table.
Declaration : proc dbeng_tmp_systable {tid}
Parameters :
Name : tid
Type : positive integer
Description : returned tid
Returns : dbeng code
This procedure will create a new temporary system table with a unique file name. This procedure exits with the table open and the table tid placed into the returned tid.
Declaration : proc dbeng_new_systable {fname tid}
Parameters :
Name : fname
Type : string
Description : path/file name
Name : tid
Type : integer
Description : input tid flag and returned tid
Returns : dbeng code
This procedure will create a new empty system table using the path/file name. If the input tid flag is one, the table will also be opened and upon successful completion, the new table tid will be returned in the returned tid.
Declaration : proc dbeng_put_which_field {tid fnum new_fnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : integer
Description : input field number
Name : new_fnum
Type : positive integer
Description : output field number
Returns : dbeng code
High Level : none
This procedure will determine which field to put data into. A positive integer is assumed to be the absolute field number. A zero indicates to append a new field to the record. Procedure returns the field number loaded into the output field number upon success.
Declaration : proc dbeng_put_which_subfield {tid fnum sfnum new_fnum new_sfnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : integer
Description : input field number
Name : sfnum
Type : integer
Description : input subfield number
Name : new_fnum
Type : positive integer
Description : output field number
Name : new_sfnum
Type : positive integer
Description : output subfield number
Returns : dbeng code
This procedure will determine which field and subfield to put data into. A positive integer is assumed to be the absolute field/subfield number. A zero indicates to append a new field/subfield to the record. Procedure returns the field number loaded into the output field number and the new subfield number loaded into the output subfield number upon success.
Declaration : proc dbeng_put_which_subsubfield {tid fnum sfnum ssfnum new_fnum new_sfnum new_ssfnum}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : fnum
Type : integer
Description : input field number
Name : sfnum
Type : integer
Description : input subfield number
Name : ssfnum
Type : integer
Description : input subsubfield number
Name : new_fnum
Type : positive integer
Description : output field number
Name : new_sfnum
Type : positive integer
Description : output subfield number
Name : new_ssfnum
Type : positive integer
Description : output subsubfield number
Returns : dbeng code
This procedure will determine which field, subfield and subsubfield to put data into. A positive integer is assumed to be the absolute field/subfield/subsubfield number. A zero indicates to append a new field/subfield/subsubfield to the record. Procedure returns the field number loaded into the output field number, the new subfield number loaded into the output subfield number and the new subsubfield number loaded into the output subsubfield number upon success.
Declaration : proc dbeng_ll_copy_table {src dest}
Parameters :
Name : src
Type : positive integer
Description : source table tid
Name : dest
Type : positive integer
Description : destination table tid
Returns : dbeng code
High Level : none
This procedure will copy a table from source table tid to destination table tid. Both tables are assumed to be open. No regard is given to existing contents of destination table tid. Records are copied in accordance with the current value of the source table tid process_deleted flag. Procedure exits with the tables remaining open.
Declaration : proc dbeng_open_systable {filename tid}
Parameters :
Name : filename
Type : string
Description : path/file name
Name : tid
Type : positive integer
Description : returned tid
Returns : dbeng code
This procedure will open a Bbuuzzb system table. Once the table is open, the data format will be verified and all records will be counted. This function behaves just like db_open except that the physical file is always left open.
Declaration : proc dbeng_ll_open_table {filename tid systable_flag}
Parameters :
Name : filename
Type : string
Description : path/file name
Name : tid
Type : positive integer
Description : returned tid
Name : systable_flag
Type : boolean flag
Description : system table flag
Returns : dbeng code
This procedure will open a table. Table ID is returned in the returned tid upon success. If the system catalog flag is on, only logical table names listed in the system catalog will succeed unless the name is prefixed with the DBENG_CATALOG_FNAME_IND character.
Declaration : proc dbeng_record_header {tid len status}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : len
Type : positive integer
Description : returned record length
Name : status
Type : string
Description : returned record status (A for active, D for deleted)
Returns : dbeng code
This procedure will read and verify the record header which is assumed to start at the current channel position. Upon success, the record length is returned in the returned record length and the record status is returned in the returned record status.
Declaration : proc dbeng_write_new_recd {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will write a new record in the table. No regard is given to the fact that the record might already exist. The record contents are assumed to already be loaded into the record buffer (rec).
Declaration : proc dbeng_write_string_recd {tid rec}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Name : rec
Type : string
Description : record string
Returns : dbeng code
This procedure will write a new record in the table. Instead of the record being written from the record buffer (rec) (as with db_write), the record will be written from the record string. No regard is given to the fact that the record might already exist. This function is used internally by the engine to copy records.
Declaration : proc dbeng_rewrite_recd {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will re-write the current record by deleting the existing record and writing a new record at the end of the table. The record contents are assumed to already be loaded into the record buffer (rec).
Declaration : proc dbeng_is_active_rec {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will determine whether there is an active record for the specified table tid. An active record is assumed when all of the following conditions are meet:
This procedure should only be called internally by the Bbuuzzb database engine.
Declaration : proc dbeng_get_tid {}
Returns : tid
This procedure will generate the next tid to be used. The tid is then checked against all tids in use. This procedure is used internally by the Bbuuzzb database engine and should not be called outside of this module.
Declaration : proc dbeng_set_record_count {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will check all tables in use and adjust the active record count and deleted record count of each matching table in use to the source table.
Declaration : proc dbeng_lock_table {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will lock a table. Every occurrence of the table will be locked. This procedure is used internally by the engine and should not be called outside of this module.
Declaration : proc dbeng_unlock_table {tid}
Parameters :
Name : tid
Type : positive integer
Description : table tid
Returns : dbeng code
This procedure will unlock a table. Every occurrence of the table will be unlocked. This procedure is used internally by the engine and should not be called outside of this module.
Declaration : proc dbeng_table_in_use {fname}
Parameters :
Name : fname
Type : string
Description : path/file name
Returns : 1 if table is in use, 0 otherwise
This procedure will determine whether a table is in use by its physical file name.
Declaration : proc dbeng_atid_lookup {int tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : 1 if table is present, 0 otherwise
This procedure will perform a lookup based on a given tid This procedure is used internally by the Bbuuzzb database engine and should not be called outside of this module.
Declaration : proc dbeng_ll_new_table {fname tid systable_flag}
Parameters :
Name : fname
Type : string
Description : path/file name
Name : tid
Type : integer
Description : input tid flag and returned tid
Name : systable_flag
Type : boolean flag
Description : system table flag
Returns : dbeng code
This procedure will create a new empty table. If tid is a positive number, the table will be opened and the tid will be returned in same. The path/file name may be in two parts separated by a comma which will indicate the logical table name followed by the physical name, ie:
test.primary,/hd1/bbuuzzb/tables/test.buz
Do not put spaces before or after the comma. If the two part form is used, an entry in the system catalog will be made (whether or not the catalog flag is on). An entry with the same logical name must not already exist. If the two part form is not used, a physical file name is assumed (do not prefix the physical file name with DBENG_CATALOG_FNAME_IND as in db_open.
Declaration : proc dbeng_ll_open {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will open the file associated with the tid.
Declaration : proc dbeng_ll_close {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
Returns : dbeng code
This procedure will close the file associated with the tid.
Declaration : proc dbeng_compare_field {field_data find_str cs_flag}
Parameters :
Name : field_data
Type : string
Description : field data
Name : find_str
Type : string
Description : find string
Name : cs_flag
Type : boolean flag
Description : case flag
Returns : result of comparison (0=equal)
This procedure will compare the field data to the find string according to the case flag. This procedure is unique to this Tcl version.
Declaration : proc dbeng_unset_table {tid}
Parameters :
Name : tid
Type : positive integer
Description : tid
This procedure will unset all dbeng_table array elements for a single tid. This procedure is unique to this Tcl version.