Compile insert DSBFS_EQUATES
*
* rjc 05-12-10   Added Catalog
* rjc 06-09-10   Added s2o_xx items
* rjc 08-02-10   Added scales, precisions
* rjc 08-26-10   Added identity key support
* -------------------------------------


Equ BFS$ To "DSBFS"

* Hash tables for caching properties
equ DSBFS_TABLES$ to "DSBFS_TABLES"           ; * table specific properites, key is tablename 
equ DSBFS_VOLUMES$ to "DSBFS_VOLUMES"         ; * volume specific properites, key is volname 
equ DSBFS_Connections$ To "DSBFS_CONNECTIONS" ; * ado connection object for a volume, key is volname 

* Structure of handle info
EQU DSBFS_HANDLE_OINAME$       TO 1    ;* The foreign name of the file
EQU DSBFS_HANDLE_DSNAME$       TO 2    ;* dataset name
EQU DSBFS_HANDLE_VOLNAME$      TO 3    ;* volume name
* NOT USED*EQU DSBFS_HANDLE_DELIM$        TO "/"  ;* A delimiter for our part of the handle


*EQU HANDLE_FILE_NAME$       TO 1    ;* The foreign name of the file
*EQU HANDLE_IC_OPEN_HANDLE$  TO 2    ;* Handle returned by an IC_OPEN call
*EQU HANDLE_FDICT_FLAG$      TO 3    ;* Flag indicating that U2 file's a dict
*EQU HANDLE_SESSION_ID$      TO 4    ;* The session id for this file


* Structure of cached info in table info
equ DSBFS_Key_Names$ 	       to  1     ; * list of sql key columns
equ DSBFS_Key_Quotes$	       to  2     ; * associated flags, true if keys need quotes in where clause
equ DSBFS_Data_Names$	       to  3     ; * list of non-key sql columns
equ DSBFS_Data_Numbers$	       to  4     ; * associated OI column number ( @record<xxx> )  for each name
equ DSBFS_Data_Quotes$	       to  5     ; * associated flags, true if values need quotes in where clause
equ DSBFS_Sorted_Names$	       to  6     ; * sql names in sorted order?
equ DSBFS_Key_OConvs$	       to  7     ; * conversion patterns for key fields, associated with key_names
equ DSBFS_Key_Iconvs$	       to  8     ; * conversion patterns for data fields, associated with data_names
equ DSBFS_cmdtype$             to  9     ; * EXEC or SELECT.  Defaults to SELECT
equ DSBFS_Vol_Name$	           to 10     ; * name of the volume that owns the table
equ DSBFS_DS_Name$	           to 11     ; * name of the dataset that created the table
equ DSBFS_Key_AdoTypes$        to 12     ; * Ado type codes for keys, associated with key_names, pulled from GENERIC_DATA_TYPE$
equ DSBFS_Data_AdoTypes$       to 13     ; * Ado type codes for data columns, associated with data_names pulled from FOREIGN_DATA_TYPE$
Equ DSBFS_SQL_Join$            To 14     ; * the sql from clause, usually a table, but could be table, table inner join on ...
Equ dsbfs_s2o_datanames$       To 15     ; * non-key sql colnames in the statement
Equ dsbfs_s2o_fmcs$            To 16     ; * associated oi record position (fmc) for each non-key in the sql statement. Thus,  s2o_fmcs<1,sql_pos> = fmc
Equ dsbfs_s2o_iconvs$          To 17     ; * associated oi Iconv to use with read_row, non-key columns only
Equ dsbfs_s2o_oconvs$          To 18     ; * oi Oconv to use with write row, non-key columns only.
Equ dsbfs_key_adocodes$        To 19     ; * adotypecode for making parameters in write_row
Equ dsbfs_s2o_adocodes$        To 20     ; * adotypecode for making parameters in write_row
Equ dsbfs_s2o_select_script$   To 21     ; * scripts for parameterised query
Equ dsbfs_s2o_insert_script$   To 22     ; * 
Equ dsbfs_s2o_update_script$   To 23     ; * 
Equ dsbfs_s2o_delete_script$   To 24     ; * 
Equ dsbfs_key_scales$          To 25     ; * list of numeric scale for each key column
Equ dsbfs_key_precisions$      To 26     ; * list of numeric precision for each key
Equ dsbfs_data_scales$         To 27     ; * list of numeric scale for each column
Equ dsbfs_data_precisions$     To 28     ; * list of numeric precision for each column
Equ dsbfs_data_Attributes$     To 29     ; * recordset attributes ( bit array, parse with bitand, see microsoft ado equates FieldAttributeEnum Values )
Equ dsbfs_key_Attributes$      To 30     ; * recordset attributes ( bit array, parse with bitand, see microsoft ado equates FieldAttributeEnum Values )
Equ dsbfs_key_identityFlags$   To 31     ; * true if the column is an identity type
Equ dsbfs_data_readonlyFlags$  To 32     ; * true if the column is an readonly


                                    ; * note conv "$,<" are stripped out, dates get special treatment to work with datetime
** Volume Fields
Equ DSBFS_Volume$            to 1  ; * the literal "VOLUME"
Equ DSBFS_BfsType$           to 2  ; * the literal "DSBFS"
Equ DSBFS_ControlLoc$        to 3  ; * RTP49 uses this to create the  volume ID.  Make it the same as the id of the record
Equ DSBFS_LoginScr$          to 4  ; * Not used
Equ DSBFS_Shadow_loc$        to 4  ; * Location of the shadow dictionaries
Equ DSBFS_VolumeId$          to 5  ; * Name of the volume, same as the id of the record
Equ DSBFS_ConnectInfo$       to 6  ; * A sub-list of cionnection parameters
Equ DSBFS_DataSetList$       to 10 ; * list of datasets associated With this volume.  Controls which tables get attached
Equ DSBFS_SqlTableList$      to 11 ; * associated group of tables used by the datasets
Equ DSBFS_OiTableList$       to 12 ; * associated group of OI tables bonded to the datasets
Equ DSBFS_RefreshTimeStamp$  to 13 ; * last time the list of tables was refreshed
Equ DSBFS_Quote_Char$        To 14 ; * character to use to quote literal strings in queries
Equ DSBFS_Quoted_Quote_Char$ To 15 ; * character to use to embed quotes in litertal strings
Equ DSBFS_Null_String$       To 16 ; * null string to use in queries
Equ DSBFS_Block_Max$         To 17 ; * max block size ( number of rows) for reading multiple records
Equ DSBFS_Force_Commit$      To 18 ; * true to force a commit after writes
Equ DSBFS_volOiDatatypes$    To 19 ; * list of oi data types, VARCHAR, INTEGER, etc.  Used fro be mapped to ado data types
Equ DSBFS_volAdoDataTypes$   To 20 ; * associated list of ado data types for this volume.  Used by refresh_shadow_dict to set FOREIGN_DATA_TYPE$
Equ DSBFS_Type_Quoted$       To 21 ; * associated flags - true if this data type needs to be quoted
Equ DSBFS_Enable_Locking$    To 22 ; * allow locking of tables in this volume - true if you want to use rtp57 locks. Note - these are OI logical locks, not visible to non-oi clients
Equ DSBFS_DbVendor$          To 23 ; * Brand name of the Server software, e.g. Oracle
Equ DSBFS_DbCatalog$         To 24 ; * Initial Catalog / database, e.g Pubs - used by dsbfs_schema
Equ DSBFS_EscapeDelimiters$   To 25 ; * True$ If the connection should Swap @vm With </vm>, etc.  defaults To true$  * added 03-04-15  rjc


** Breakdown of the Control Information
Equ DSBFS_Servername$         to 1 ; * ipaddress or name of server - Not used
Equ DSBFS_LoginId$            to 2 ; * Username on SQL server, not needed for integrated security
Equ DSBFS_Password$           to 3 ; * Password on SQL server , not needed for integrated security
Equ DSBFS_CredentialsEnabled$ to 4 ; * true if we must pass credentials ( i.e. not using integreated authentication ) 
Equ DSBFS_ConnectionString$   to 5 ; * the ado connection string
Equ DSBFS_encryptor$          to 6 ; * the ado connection string

equ DSBFS_SYNCDICTFLAG$ to 6 ; * Unused?

equ DSBFS_AttachListOption$ to 8 ; * rjc 01-02-08 All or Specific Tables.  
equ DSBFS_RefreshOption$    to 9 ; * rjc 01-02-08 Automatic (upon attach)  or manual (upon request) resync of tables.
Equ DSBFS_Authentication$   to 10; * true if we need to supply credentials, false if using integrated Windows authentication

Equ DSBFS_Password_key$ to "RTI902K606C31E9T"

* Structure of the config record SYSENV, CFG_DSBFS
Equ cfg_vendors$      To 1   ; * vm delimited list of vendors * rjc  06-24-22
Equ cfg_schema_proc$  To 2   ; * Associated list of procedure names for Schema, leave blank to get default 
Equ cfg_select_proc$  To 3   ; * Associated list of procedure names for DSBFS_SELECT, leave blank to get default 
Equ cfg_IO_proc$      To 4   ; * Associated list of procedure names for DSBFS_IO, leave blank to get default 


EQU LOCATION_PATH$ TO 1
EQU LOCATION_FS$   TO 2
EQU LOCATION_CONTROL$ TO 3

EQU SRV_DBNAME$    TO 1
EQU SRV_USER$      TO 2
EQU SRV_PASSWD$    TO 3

EQU VOL_PTR_TOKEN$    TO 1
EQU VOL_PTR_FS$       TO 2
EQU VOL_PTR_LOCATION$ TO 3
EQU VOL_PTR_CONTROL$  TO 4
/* bda 1/21/94 -------------------- */
EQU VOL_PTR_OVERRIDE_LOCATION$	TO 5

EQU VOL_PTR_SRVNAME$     TO 1
EQU VOL_PTR_DBNAME$      TO 2



* OMNISCRIPT calls - Some of the meta functions are implemented as omniscript calls
* start the numbering at 100 to skip over other RTP57 uses of omniscript
* copied in from mvfs, not all implmented
Equ dsbfs_OmniGetServerTables$       To 110   ; * List the tables on the server
Equ dsbfs_OmniGetServerColumns$      To 111   ; * List the columns for a table on the server
Equ dsbfs_OmniGetColumnProperties$   To 112   ; * Get properties of a column on the server
Equ dsbfs_OmniSetVolSync$            To 113   ; * Set the Volume level synchronization info, e.g write all changes, write new cols ,write-none
Equ dsbfs_OmniGetVolSync$            To 114   ; * Get the Volume level synchronization info
Equ dsbfs_OmniSetTableSync$          To 115   ; * Set the Table level synchronization info, e.g. specific columns, or literal-only
Equ dsbfs_OmniGetTableSync$          To 116   ; * Get the Volume level synchronization info
Equ dsbfs_OmniGetPlatform$           To 117   ; * get the platform For this volume
Equ dsbfs_OmniSetParam$              To 118   ; * add / update a username password pair in the session
Equ dsbfs_OmniWriteParam$            To 119   ; * add / update a username password pair in the "wallet" ( and the session)
Equ dsbfs_OmniLinkTable$             To 120   ; * Attach a table - creates the media pointers ; DSBFS(OMNI.SCRIPT$, BFS$, volname, ds_name, '', dsbfs_omniLinkTable$, table_isOk )
Equ dsbfs_OmniUnLinkTable$           To 121   ; * Detach a table - deletes the media pointers
Equ dsbfs_OmniMakeShadowColumns$     To 122   ; * Map columns for a table
Equ dsbfs_OmniGetVolumes$            To 123   ; * List the volumes defined for this bfs, optional filter on platform
Equ dsbfs_OmniExecute$               To 124   ; * Execute a TCL command
Equ dsbfs_OmniCallSub$               To 125   ; * Call a subrooutine
Equ dsbfs_OmniCompileBasic$          To 126   ; * Compile a subroutine ( h = volname, n = filename, f= omniscript  r = rowId
Equ dsbfs_OmniCalculate$             To 127   ; * Like CalculateEx.  Have the server calculate a column value.
Equ dsbfs_OmniIconv$                 To 128   ; * Iconv at server
Equ dsbfs_OmniOconv$                 To 129   ; * Oconv at server
Equ dsbfs_OmniGetParam$              To 130   ; * get a connection string parameter
Equ dsbfs_OmniReadUAllowed$          To 131   ; * Return true if ReadU / WriteRelease are supported
Equ dsbfs_OmniReadU$                 To 132   ; * Native ReadU call
Equ dsbfs_OmniWriteRelease$          To 133   ; * Native Write Call, will release the lock
Equ dsbfs_OmniAddCredential$         To 134   ; * Add an oi To 1host user login
Equ dsbfs_OmniRemoveCredential$      To 135   ; * Remove an oi To host user login
Equ dsbfs_OmniTransactionBegin$      To 136   ; * Begin a transaction
Equ dsbfs_OmniTransactionCommit$     To 137   ; * Commit a transaction
Equ dsbfs_OmniTransactionRollBack$   To 138   ; * Roll back a transaction
Equ dsbfs_OmniSetUser$               To 139   ; * Activate the credentials for the curent user.  Need to detach / attach if the credentials change
Equ dsbfs_OmnigetUser$               To 140   ; * Activate the credentials for the curent user.  Need to detach / attach if the credentials change
Equ dsbfs_OmniTransactionStatus$     To 141   ; * Get the current transaction status
Equ dsbfs_OmniGetDatasections$       To 142   ; * Look up the names of multlevel data tables in the table
Equ dsbfs_OmniListVolumes$           To 143   ; * Return an array of defined volumes and their connection status
Equ dsbfs_OmniRelease$		       To 144   ; * Release a READU lock
Equ dsbfs_OmniEnablePooling$		  To 145   ; * Enable pooling Connections
Equ dsbfs_OmniDisablePooling$		  To 146   ; * Disable pooling Connections
Equ dsbfs_OmniSetAdditionalProperty$ To 147   ; * pass-through a property setting.  User is responsible for setting a valid property. ( e.g.  Timeout)
Equ dsbfs_OmniGetAdditionalProperty$ To 148   ; * pass-through a property setting.  User is responsible for setting a valid property. ( e.g.  Timeout)
Equ dsbfs_OmniGetMediaHandle$        To 149   ; * return the media handle for a volumename, even if it is not attached yet
Equ dsbfs_OmniTranslateSelect$       To 150   ; * Given an OI select statement, return equivalent SQL from, with, by clauses


