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.