Sage-ST ä

Multsage

Documentation

CloseAllSystems CloseRelation CloseRelationDirect CloseSystem
CloseSystemDirect CloseSystemNumber CurrentSystemNumber DeleteRecord
DuplicateBlock EnableRecordLocking ExclusiveLocked ExclusiveReadLockRelation
ExclusiveUnlockRelation ExclusiveWriteLockRelation FindRecord FindRecordA
FindRecordC FindRecordF FindRecordI FindRecordN
FindRecordR FindRecordU GenerateUniqueKey GetBlock
GetBlockSize GetKeyPosition GetMaxUsers GetRecordLocking
GetRecordPreemptTime GetRelationPreemptTime GetUserID OpenRelation
OpenRelationDirect OpenSystem OpenSystemDirect PutBlock
ReWriteRecord ReadLockRecord ReadLockRelation ReadRecord
ReadRecordA ReadRecordC ReadRecordF ReadRecordI
ReadRecordN ReadRecordP ReadRecordR ReadRecordU
RecordIsWriteLocked RecordLockPending ReduceLongUserID RelationIsOpen
RelationIsOpenDirect RelationOpenForModify STRCloseRelation STRDeleteRecord
STRExclusiveReadLockRelation STRExclusiveUnlockRelation STRFindRecord STRGetBlock
STRGetBlockSize STRGetKeyPosition STROpenRelation STROpenSystem
STROpenSystemDirect STRPutBlock STRReWriteRecord STRReadLockRecord
STRReadRecord STRReadRecordN STRReadRecordP STRReduceLongUserId
STRRelationIsOpen STRSetUserId STRSystemIsOpen STRTotalRecords
STRTruncateBlock STRUnlockRecord STRWriteLockRecord STRWriteRecord
SetMaxUsers SetRecordPreemptTime SetRelationPreemptTime SetToSystemNumber
SetUserID SystemIsOpen TotalRecords TotalRecordsDirect
TruncateBlock UnlockRecord UnlockRelation WriteLockRecord
WriteLockRelation WriteRecord




  procedure CloseAllSystems; stdcall;

  exports CloseAllSystems name 'MultSage_CloseAllSystems';




  procedure CloseSystem; stdcall;

  exports CloseSystem name 'MultSage_CloseSystem';




  procedure CloseSystemNumber
             (const systemNumber : ModSys.INT32); stdcall;

  exports CloseSystemNumber name 'MultSage_CloseSystemNumber';




  procedure CloseRelation
             (const Relation : array of char); overload; stdcall;

  exports MultSage.CloseRelation (const Relation : array of char) name 'MultSage_CloseRelation';




  procedure CloseRelation
             (const Relation : string); overload; stdcall;

  exports MultSage.CloseRelation (const Relation : string) name 'MultSage_STRCloseRelation';




  function CurrentSystemNumber
             () : ModSys.INT32; stdcall;

  exports CurrentSystemNumber name 'MultSage_CurrentSystemNumber';




  procedure DeleteRecord
             (const Relation : array of char); overload; stdcall;

  exports MultSage.DeleteRecord (const Relation : array of char) name 'MultSage_DeleteRecord';




  procedure DeleteRecord
             (const Relation : string); overload; stdcall;

  exports MultSage.DeleteRecord (const Relation : string) name 'MultSage_STRDeleteRecord';




  procedure DuplicateBlock
             (const Relation : array of char;
              const Field    : array of char); stdcall;

  exports DuplicateBlock name 'MultSage_DuplicateBlock';




  procedure EnableRecordLocking
             (const state : boolean); stdcall;

  exports EnableRecordLocking name 'MultSage_EnableRecordLocking';

  //*
  //  EnableRecordLocking - Set the record locking state.
  //
  //
  //  If 'State' is True then all record locking procedures are
  //  enabled, otherwise they are disabled.
  //
  //  Setting 'State' to True provides the maximum protection in
  //  a multi-user environment.  The performance of the system is
  //  degraded in this mode.
  //
  //  Setting 'State' to False provides the minimum protection in
  //  a multi-user environment.  The performance of the system is
  //  at its maximum in this mode.  In most cases, this mode is used
  //  where the programmer will control the multi-user aspects of
  //  the system using the semaphore mechanisms provided herein.
  //
  //  By default the system is set with 'State' as True;
  //
  //  CALLING SEQUENCE -
  //
  //    EnableRecordLocking (State);
  //
  //  ENTRY -
  //
  //    State : boolean
  //      The desired state for system record locking.
  //




  procedure ExclusiveReadLockRelation
             (const RelationName : array of char;
              const LockTimeOut  : cardinal); overload; stdcall;

  exports ExclusiveReadLockRelation (const RelationName : array of char;
                                     const LockTimeOut  : cardinal) name 'MultSage_ExclusiveReadLockRelation';

  //*
  //  ExclusiveReadLockRelation - Read lock an entire relation.
  //
  //
  //  The relation 'RelationName' is read locked.  This will prohibit
  //  any other user from reading, rewriting or writing any records in
  //  the relation.
  //
  //  The procedure will try for 'LockTimeOut' seconds to lock the
  //  relation.  If it times out a sage error will be set.  If 'LockTimeOut'
  //  is 0 it will wait forever.
  //
  //  The difference between this procedure and 'ReadLockRelation' is
  //  that this procedure cannot be preempted and hence runs faster.
  //
  //  CALLING SEQUENCE -
  //
  //    ExclusiveReadLockRelation (RelationName, LockTimeOut,
  //                               PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to lock.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' is already locked.
  //




  procedure ExclusiveReadLockRelation
             (const RelationName : string;
              const LockTimeOut  : cardinal); overload; stdcall;

  exports ExclusiveReadLockRelation (const RelationName : string;
                                     const LockTimeOut  : cardinal) name 'MultSage_STRExclusiveReadLockRelation';

  //*
  //  STRExclusiveReadLockRelation - See documentation of ExclusiveReadLockRelation.
  //




  procedure ExclusiveUnlockRelation
             (const RelationName : array of char); overload; stdcall;

  exports ExclusiveUnlockRelation (const RelationName : array of char) name 'MultSage_ExclusiveUnlockRelation';

  //*
  //  ExclusiveUnlockRelation - Unlock an entire relation.
  //
  //
  //  The relation 'RelationName' is unlocked.
  //
  //  CALLING SEQUENCE -
  //
  //    ExclusiveUnlockRelation (RelationName);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to lock.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid, the relation
  //      'RelationName' is not locked, or the lock timed out.
  //




  procedure ExclusiveUnlockRelation
             (const RelationName : string); overload; stdcall;

  exports ExclusiveUnlockRelation (const RelationName : string) name 'MultSage_STRExclusiveUnlockRelation';

  //*
  //  STRExclusiveUnlockRelation - See documentation of ExclusiveUnlockRelation.
  //




  procedure ExclusiveWriteLockRelation
             (const RelationName : array of char;
              const LockTimeOut  : cardinal); stdcall;

  exports ExclusiveWriteLockRelation name 'MultSage_ExclusiveWriteLockRelation';

  //*
  //  ExclusiveWriteLockRelation - Write lock an entire relation.
  //
  //
  //  The relation 'RelationName' is write locked.  This will prohibit
  //  any other user from rewriting or writing any records in the relation.
  //
  //  The procedure will try for 'LockTimeOut' seconds to lock the
  //  relation.  If it times out a sage error will be set.  If 'LockTimeOut'
  //  is 0 it will wait forever.
  //
  //  The difference between this procedure and 'WriteLockRelation' is
  //  that this procedure cannot be preempted and hence runs faster.
  //
  //  CALLING SEQUENCE -
  //
  //    ExclusiveWriteLockRelation (RelationName,
  //                                LockTimeOut, PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to lock.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' is already locked.
  //




  function RecordLockPending
             (const RelationName : array of char) : boolean; stdcall;

  exports RecordLockPending name 'MultSage_RecordLockPending';

  //*
  //  RecordLockPending - A record lock has been requested for next Read.
  //




  function ExclusiveLocked
             (const RelationName : array of char) : boolean; stdcall;

  exports ExclusiveLocked name 'MultSage_ExclusiveLocked';

  //*
  //  ExclusiveLocked - Determine if you have an exclusive rel. lock.
  //




  procedure FindRecord
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations); overload; stdcall;

  exports MultSage.FindRecord (const Relation  : array of char;
                               const Field     : array of char;
                               const Operation : Sage.SageOperations) name 'MultSage_FindRecord';




  procedure FindRecord
             (const Relation  : string;
              const Field     : string;
              const Operation : Sage.SageOperations); overload; stdcall;

  exports MultSage.FindRecord (const Relation  : string;
                               const Field     : string;
                               const Operation : Sage.SageOperations) name 'MultSage_STRFindRecord';




  procedure FindRecordA
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const Alpha     : array of char); stdcall;

  exports FindRecordA name 'MultSage_FindRecordA';




  procedure FindRecordC
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const CardVal   : cardinal); stdcall;

  exports FindRecordC name 'MultSage_FindRecordC';




  procedure FindRecordF
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const RealVal   : ModSys.FLOAT32); stdcall;

  exports FindRecordF name 'MultSage_FindRecordF';




  procedure FindRecordI
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const IntVal    : integer); stdcall;

  exports FindRecordI name 'MultSage_FindRecordI';




  procedure FindRecordN
             (const Relation : array of char;
              const Field    : array of char;
              const Number   : ModSys.INT32); stdcall;

  exports FindRecordN name 'MultSage_FindRecordN';




  procedure FindRecordR
             (const Relation1 : array of char;
              const Field1    : array of char;
              const Operation : Sage.SageOperations;
              const Relation2 : array of char;
              const Field2    : array of char); stdcall;

  exports FindRecordR name 'MultSage_FindRecordR';




  procedure FindRecordU
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const Value     : array of WideChar); stdcall;

  exports FindRecordU name 'MultSage_FindRecordU';




  procedure GenerateUniqueKey
             (const Relation : array of char;
              const Field    : array of char;
              var   keyNum   : ModSys.INT32); stdcall;

  exports GenerateUniqueKey name 'MultSage_GenerateUniqueKey';




  procedure GetBlock
             (const Relation  : array of char;
              const Field     : array of char;
              const Buff      : pointer;
              var   nBytes    : cardinal;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.GetBlock (const Relation  : array of char;
                             const Field     : array of char;
                             const Buff      : pointer;
                             var   nBytes    : cardinal;
                             var   firstByte : ModSys.INT32) name 'MultSage_GetBlock';




  procedure GetBlock
             (const Relation  : string;
              const Field     : string;
              const Buff      : pointer;
              var   nBytes    : cardinal;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.GetBlock (const Relation  : string;
                             const Field     : string;
                             const Buff      : pointer;
                             var   nBytes    : cardinal;
                             var   firstByte : ModSys.INT32) name 'MultSage_STRGetBlock';




  procedure GetBlockSize
             (const Relation : array of char;
              const Field    : array of char;
              var   size     : ModSys.INT32); overload; stdcall;

  exports MultSage.GetBlockSize (const Relation : array of char;
                                 const Field    : array of char;
                                 var   size     : ModSys.INT32) name 'MultSage_GetBlockSize';




  procedure GetBlockSize
             (const Relation : string;
              const Field    : string;
              var   size     : ModSys.INT32); overload; stdcall;

  exports MultSage.GetBlockSize (const Relation : string;
                                 const Field    : string;
                                 var   size     : ModSys.INT32) name 'MultSage_STRGetBlockSize';




  procedure GetKeyPosition
             (const Relation : array of char;
              const Field    : array of char;
              var   Position : ModSys.INT32); overload; stdcall;

  exports MultSage.GetKeyPosition (const Relation : array of char;
                                   const Field    : array of char;
                                   var   Position : ModSys.INT32) name 'MultSage_GetKeyPosition';




  procedure GetKeyPosition
             (const Relation : string;
              const Field    : string;
              var   Position : ModSys.INT32); overload; stdcall;

  exports MultSage.GetKeyPosition (const Relation : string;
                                   const Field    : string;
                                   var   Position : ModSys.INT32) name 'MultSage_STRGetKeyPosition';




  function GetRecordPreemptTime
             () : cardinal; stdcall;

  exports GetRecordPreemptTime name 'MultSage_GetRecordPreemptTime';

  //*
  //  GetRecordPreemptTime - Get default record preempt time.
  //
  //
  //  The current value of the system default record preempt time
  //  is returned.
  //
  //  CALLING SEQUENCE -
  //
  //    Seconds := GetRecordPreemptTime ();
  //
  //  ENTRY -
  //
  //    None
  //      N/A
  //
  //  EXIT -
  //
  //    Seconds : cardinal
  //      The current value of the system record preempt time.
  //




  function GetRelationPreemptTime
             () : cardinal; stdcall;

  exports GetRelationPreemptTime name 'MultSage_GetRelationPreemptTime';

  //*
  //  GetRelationPreemptTime - Get default relation preempt time.
  //
  //
  //  The current value of the system default relation preempt time
  //  is returned.
  //
  //  CALLING SEQUENCE -
  //
  //    Seconds := GetRelationPreemptTime ();
  //
  //  ENTRY -
  //
  //    None
  //      N/A
  //
  //  EXIT -
  //
  //    Seconds : cardinal
  //      The current value of the system relation preempt time.
  //




  procedure GetUserID
             (var   CurrentUserID : array of char); stdcall;

  exports GetUserID name 'MultSage_GetUserID';

  //*
  //  GetUserID - Get the User ID.
  //
  //
  //  The current value of the UserID is gotten.
  //
  //  CALLING SEQUENCE -
  //
  //    GetUserID (CurrentUserID);
  //
  //  ENTRY -
  //
  //    None
  //      N/A
  //
  //  EXIT -
  //
  //    CurrentUserID : array of char
  //      A three character array.
  //




  function SystemIsOpen
             (const Dictionary : array of char) : boolean; overload; stdcall;

  exports MultSage.SystemIsOpen (const Dictionary : array of char) name 'Sage_SystemIsOpen';

  //*
  //  SystemIsOpen - Check if the system is already opened.
  //
  //
  //  This routine checks the system name and returns a boolean
  //  value indicating if that system has already been opened.
  //
  //  CALLING SEQUENCE -
  //
  //    AlreadyOpen := SystemIsOpen (Dictionary)
  //
  //  ENTRY -
  //
  //    Dictionary : array of char
  //      The name of the dictionary file for the database.
  //
  //  EXIT -
  //
  //    boolean
  //      TRUE - This system is already open.
  //       FALSE - This system is currently not open.
  //




  function SystemIsOpen
             (const Dictionary : string) : boolean; overload; stdcall;

  exports MultSage.SystemIsOpen (const Dictionary : string) name 'Sage_STRSystemIsOpen';

  //*
  //  STRSystemIsOpen - See documentation of SystemIsOpen.
  //




  procedure OpenSystem
             (const Dictionary : array of char;
              const MaxForms   : cardinal;
              const MaxScreens : cardinal;
              const BufferSize : cardinal); overload; stdcall;

  exports MultSage.OpenSystem (const Dictionary : array of char;
                               const MaxForms   : cardinal;
                               const MaxScreens : cardinal;
                               const BufferSize : cardinal) name 'MultSage_OpenSystem';




  procedure OpenSystem
             (const Dictionary : string;
              const MaxForms   : cardinal;
              const MaxScreens : cardinal;
              const BufferSize : cardinal); overload; stdcall;

  exports MultSage.OpenSystem (const Dictionary : string;
                               const MaxForms   : cardinal;
                               const MaxScreens : cardinal;
                               const BufferSize : cardinal) name 'MultSage_STROpenSystem';




  procedure OpenRelation
             (const Relation : array of char;
              const Modify   : boolean); overload; stdcall;

  exports MultSage.OpenRelation (const Relation : array of char;
                                 const Modify   : boolean) name 'MultSage_OpenRelation';




  procedure OpenRelation
             (const Relation : string;
              const Modify   : boolean); overload; stdcall;

  exports MultSage.OpenRelation (const Relation : string;
                                 const Modify   : boolean) name 'MultSage_STROpenRelation';




  procedure PutBlock
             (const Relation  : array of char;
              const Field     : array of char;
              const Buff      : pointer;
              const nBytes    : cardinal;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.PutBlock (const Relation  : array of char;
                             const Field     : array of char;
                             const Buff      : pointer;
                             const nBytes    : cardinal;
                             var   firstByte : ModSys.INT32) name 'MultSage_PutBlock';




  procedure PutBlock
             (const Relation  : string;
              const Field     : string;
              const Buff      : pointer;
              const nBytes    : cardinal;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.PutBlock (const Relation  : string;
                             const Field     : string;
                             const Buff      : pointer;
                             const nBytes    : cardinal;
                             var   firstByte : ModSys.INT32) name 'MultSage_STRPutBlock';




  procedure ReadLockRecord
             (const RelationName   : array of char;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); overload; stdcall;

  exports ReadLockRecord (const RelationName   : array of char;
                          const LockTimeOut    : cardinal;
                          const PreemptTimeOut : cardinal) name 'MultSage_ReadLockRecord';

  //*
  //  ReadLockRecord - Cause next record read to be read locked.
  //
  //
  //  The next record read from relation 'RelationName', in any form
  //  (i.e. ReadRecord, ReadRecordP, etc.), will be read locked.
  //  This will prohibit any other user from reading or rewriting the
  //  next record read.  To unlock the record either 'ReWrite', 'Delete'
  //  or 'UnlockRecord' the record.
  //
  //  When the read operation is attempted it will try for 'LockTimeOut'
  //  seconds to read with lock.  If it times out a sage error will be
  //  set.  If 'LockTimeOut' is 0 it will wait forever.
  //
  //  The record lock that occurs as a result of the next read will be
  //  un-preemptable for either 'PreemptTimeOut' seconds or
  //  'SysRecordPreemptTimeOut' seconds, whichever is shorter.
  //
  //  CALLING SEQUENCE -
  //
  //    ReadLockRecord (RelationName, LockTimeOut, PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation whose record is to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to read with lock.
  //
  //    PreemptTimeOut : cardinal
  //      The time in seconds to not allow lock preempting.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' has a record locked.
  //




  procedure ReadLockRecord
             (const RelationName   : string;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); overload; stdcall;

  exports ReadLockRecord (const RelationName   : string;
                          const LockTimeOut    : cardinal;
                          const PreemptTimeOut : cardinal) name 'MultSage_STRReadLockRecord';

  //*
  //  STRReadLockRecord - See documentation of ReadLockRecord.
  //




  procedure ReadLockRelation
             (const RelationName   : array of char;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); stdcall;

  exports ReadLockRelation name 'MultSage_ReadLockRelation';

  //*
  //  ReadLockRelation - Read lock an entire relation.
  //
  //
  //  The relation 'RelationName' is read locked.  This will prohibit
  //  any other user from reading, rewriting or writing any records in
  //  the relation.
  //
  //  The procedure will try for 'LockTimeOut' seconds to lock the
  //  relation.  If it times out a sage error will be set. If 'LockTimeOut'
  //  is 0 it will wait forever.
  //
  //  The relation lock will be un-preemptable for either 'PreemptTimeOut'
  //  seconds or 'SysRelationPreemptTimeOut' seconds, whichever
  //  is shorter.
  //
  //  CALLING SEQUENCE -
  //
  //    ReadLockRelation (RelationName, LockTimeOut, PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to lock.
  //
  //    PreemptTimeOut : cardinal
  //      The time in seconds to not allow lock preempting.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' is already locked.
  //




  procedure ReadRecord
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations); overload; stdcall;

  exports MultSage.ReadRecord (const Relation  : array of char;
                               const Field     : array of char;
                               const Operation : Sage.SageOperations) name 'MultSage_ReadRecord';




  procedure ReadRecord
             (const Relation  : string;
              const Field     : string;
              const Operation : Sage.SageOperations); overload; stdcall;

  exports MultSage.ReadRecord (const Relation  : string;
                               const Field     : string;
                               const Operation : Sage.SageOperations) name 'MultSage_STRReadRecord';




  procedure ReadRecordA
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const Alpha     : array of char); stdcall;

  exports ReadRecordA name 'MultSage_ReadRecordA';




  procedure ReadRecordC
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const CardVal   : cardinal); stdcall;

  exports ReadRecordC name 'MultSage_ReadRecordC';




  procedure ReadRecordF
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const RealVal   : ModSys.FLOAT32); stdcall;

  exports ReadRecordF name 'MultSage_ReadRecordF';




  procedure ReadRecordI
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const IntVal    : integer); stdcall;

  exports ReadRecordI name 'MultSage_ReadRecordI';




  procedure ReadRecordN
             (const Relation : array of char;
              const Field    : array of char;
              const Number   : ModSys.INT32); overload; stdcall;

  exports MultSage.ReadRecordN (const Relation : array of char;
                                const Field    : array of char;
                                const Number   : ModSys.INT32) name 'MultSage_ReadRecordN';




  procedure ReadRecordN
             (const Relation : string;
              const Field    : string;
              const Number   : ModSys.INT32); overload; stdcall;

  exports MultSage.ReadRecordN (const Relation : string;
                                const Field    : string;
                                const Number   : ModSys.INT32) name 'MultSage_STRReadRecordN';




  procedure ReadRecordP
             (const Relation : array of char;
              const Field    : array of char;
              const Number   : ModSys.INT32); overload; stdcall;

  exports MultSage.ReadRecordP (const Relation : array of char;
                                const Field    : array of char;
                                const Number   : ModSys.INT32) name 'MultSage_ReadRecordP';




  procedure ReadRecordP
             (const Relation : string;
              const Field    : string;
              const Number   : ModSys.INT32); overload; stdcall;

  exports MultSage.ReadRecordP (const Relation : string;
                                const Field    : string;
                                const Number   : ModSys.INT32) name 'MultSage_STRReadRecordP';




  procedure ReadRecordR
             (const Relation1 : array of char;
              const Field1    : array of char;
              const Operation : Sage.SageOperations;
              const Relation2 : array of char;
              const Field2    : array of char); stdcall;

  exports ReadRecordR name 'MultSage_ReadRecordR';




  procedure ReadRecordU
             (const Relation  : array of char;
              const Field     : array of char;
              const Operation : Sage.SageOperations;
              const Value     : array of WideChar); stdcall;

  exports ReadRecordU name 'MultSage_ReadRecordU';




  function RelationIsOpen
             (const Relation : array of char) : boolean; overload; stdcall;

  exports MultSage.RelationIsOpen (const Relation : array of char) name 'MultSage_RelationIsOpen';

  //*
  //  RelationIsOpen - Check to see if relation is open.
  //
  //  (Refer to the documentation for the same procedure in the Sage package).
  //




  function RelationIsOpen
             (const Relation : string) : boolean; overload; stdcall;

  exports MultSage.RelationIsOpen (const Relation : string) name 'MultSage_STRRelationIsOpen';

  //*
  //  STRRelationIsOpen - See documentation of RelationIsOpen.
  //




  function RelationOpenForModify
             (const Relation : array of char) : boolean; stdcall;

  exports RelationOpenForModify name 'MultSage_RelationOpenForModify';

  //*
  //  RelationOpenForModify - Check to see if relation is opened for modify.
  //
  //  (Refer to the documentation for the same procedure in the Sage package).
  //




  procedure ReWriteRecord
             (const Relation : array of char); overload; stdcall;

  exports MultSage.ReWriteRecord (const Relation : array of char) name 'MultSage_ReWriteRecord';




  procedure ReWriteRecord
             (const Relation : string); overload; stdcall;

  exports MultSage.ReWriteRecord (const Relation : string) name 'MultSage_STRReWriteRecord';




  function RecordIsWriteLocked
             (const Relation : array of char) : boolean; stdcall;

  exports RecordIsWriteLocked name 'MultSage_RecordIsWriteLocked';

  //*
  //  RecordIsWriteLocked - The record has a write lock.
  //
  //  This function returns a true if a write permission lock is
  //  currently in place.  This could be if :
  //  1.  A record write lock was requested on a record and has not
  //        been preempted.
  //  2.  An exclusive read or write lock is in force for the relation.
  //  3.  Locking has been turned off
  //




  procedure SetRecordPreemptTime
             (const Seconds : cardinal); stdcall;

  exports SetRecordPreemptTime name 'MultSage_SetRecordPreemptTime';

  //*
  //  SetRecordPreemptTime - Set default record preempt time.
  //
  //
  //  The system default record preempt time is set to 'Seconds'.
  //
  //  This value sets the upper limit on the preempt time for
  //  record locks.
  //
  //  CALLING SEQUENCE -
  //
  //    SetRecordPreemptTime (Seconds);
  //
  //  ENTRY -
  //
  //    Seconds : cardinal
  //      The number of seconds to set the record preempt time
  //      limit to.
  //
  //  EXIT -
  //
  //    None
  //      N/A
  //




  procedure SetRelationPreemptTime
             (const Seconds : cardinal); stdcall;

  exports SetRelationPreemptTime name 'MultSage_SetRelationPreemptTime';

  //*
  //  SetRelationPreemptTime - Set default relation preempt time.
  //
  //
  //  The system default relation preempt time is set to 'Seconds'.
  //
  //  This value sets the upper limit on the preempt time for
  //  relation locks.
  //
  //  CALLING SEQUENCE -
  //
  //    SetRelationPreemptTime (Seconds);
  //
  //  ENTRY -
  //
  //    Seconds : cardinal
  //      The number of seconds to set the relation preempt time
  //      limit to.
  //




  procedure SetToSystemNumber
             (const systemNumber : ModSys.INT32); stdcall;

  exports SetToSystemNumber name 'MultSage_SetToSystemNumber';




  procedure SetUserID
             (const NewUserID : array of char); overload; stdcall;

  exports SetUserID (const NewUserID : array of char) name 'MultSage_SetUserID';

  //*
  //  SetUserID - Set the User ID.
  //
  //
  //  The current value of the UserID is set.
  //
  //  CALLING SEQUENCE -
  //
  //    SetUserID (NewUserID);
  //
  //  ENTRY -
  //
  //    NewUserID : array of char
  //      A three character array.
  //




  procedure SetUserID
             (const NewUserID : string); overload; stdcall;

  exports SetUserID (const NewUserID : string) name 'MultSage_STRSetUserID';

  //*
  //  STRSetUserID - See documentation of SetUserID.
  //




  function TotalRecords
             (const relName : array of char) : ModSys.INT32; overload; stdcall;

  exports MultSage.TotalRecords (const relName : array of char) name 'MultSage_TotalRecords';




  function TotalRecords
             (const relName : string) : ModSys.INT32; overload; stdcall;

  exports MultSage.TotalRecords (const relName : string) name 'MultSage_STRTotalRecords';




  procedure TruncateBlock
             (const Relation  : array of char;
              const Field     : array of char;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.TruncateBlock (const Relation  : array of char;
                                  const Field     : array of char;
                                  var   firstByte : ModSys.INT32) name 'MultSage_TruncateBlock';




  procedure TruncateBlock
             (const Relation  : string;
              const Field     : string;
              var   firstByte : ModSys.INT32); overload; stdcall;

  exports MultSage.TruncateBlock (const Relation  : string;
                                  const Field     : string;
                                  var   firstByte : ModSys.INT32) name 'MultSage_STRTruncateBlock';




  procedure UnlockRecord
             (const RelationName : array of char); overload; stdcall;

  exports UnlockRecord (const RelationName : array of char) name 'MultSage_UnlockRecord';

  //*
  //  UnlockRecord - Unlock a pending record lock.
  //
  //
  //  If the relation 'RelationName' has a record locked then the record is
  //  unlocked.  No data base update is associated with this operation.
  //
  //  CALLING SEQUENCE -
  //
  //    UnlockRecord (RelationName);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation whose record is to be unlocked.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid, the relation
  //      'RelationName' has no record locked, or the record lock timed
  //      out.
  //




  procedure UnlockRecord
             (const RelationName : string); overload; stdcall;

  exports UnlockRecord (const RelationName : string) name 'MultSage_STRUnlockRecord';

  //*
  //  STRUnlockRecord - See documentation of UnlockRecord.
  //




  procedure UnlockRelation
             (const RelationName : array of char); stdcall;

  exports UnlockRelation name 'MultSage_UnlockRelation';

  //*
  //  UnlockRelation - Unlock an entire relation.
  //
  //
  //  The relation 'RelationName' is unlocked.
  //
  //  CALLING SEQUENCE -
  //
  //    UnlockRelation (RelationName);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to lock.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid, the relation
  //      'RelationName' is not locked, or the lock timed out.
  //




  procedure WriteLockRecord
             (const RelationName   : array of char;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); overload; stdcall;

  exports WriteLockRecord (const RelationName   : array of char;
                           const LockTimeOut    : cardinal;
                           const PreemptTimeOut : cardinal) name 'MultSage_WriteLockRecord';

  //*
  //  WriteLockRecord - Cause next record read to be write locked.
  //
  //
  //  The next record read from relation 'RelationName', in any form
  //  (i.e. ReadRecord, ReadRecordP, etc.), will be write locked.
  //  This will prohibit any other user from rewriting the
  //  next record read.  To unlock the record either 'ReWrite', 'Delete'
  //  or 'UnlockRecord' the record.
  //
  //  When the read operation is attempted it will try for 'LockTimeOut'
  //  seconds to read with lock.  If it times out a sage error will
  //  be set. If 'LockTimeOut' is 0 it will wait forever.
  //
  //  The record lock that occurs as a result of the next read will be
  //  un-preemptable for either 'PreemptTimeOut' seconds or
  //  'SysRecordPreemptTimeOut' seconds, whichever is shorter.
  //
  //  CALLING SEQUENCE -
  //
  //    WriteLockRecord (RelationName, LockTimeOut, PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation whose record is to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to read with lock.
  //
  //    PreemptTimeOut : cardinal
  //      The time in seconds to not allow lock preempting.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' has a record locked.
  //




  procedure WriteLockRecord
             (const RelationName   : string;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); overload; stdcall;

  exports WriteLockRecord (const RelationName   : string;
                           const LockTimeOut    : cardinal;
                           const PreemptTimeOut : cardinal) name 'MultSage_STRWriteLockRecord';

  //*
  //  STRWriteLockRecord - See documentation of WriteLockRecord.
  //




  procedure WriteLockRelation
             (const RelationName   : array of char;
              const LockTimeOut    : cardinal;
              const PreemptTimeOut : cardinal); stdcall;

  exports WriteLockRelation name 'MultSage_WriteLockRelation';

  //*
  //  WriteLockRelation - Write lock an entire relation.
  //
  //
  //  The relation 'RelationName' is write locked.  This will prohibit
  //  any other user from rewriting or writing any records in the relation.
  //
  //  The procedure will try for 'LockTimeOut' seconds to lock the
  //  relation.  If it times out a sage error will be set.  If 'LockTimeOut'
  //  is 0 it will wait forever.
  //
  //  The relation lock will be un-preemptable for either 'PreemptTimeOut'
  //  seconds or 'SysRelationPreemptTimeOut' seconds, whichever
  //  is shorter.
  //
  //  CALLING SEQUENCE -
  //
  //    WriteLockRelation (RelationName, LockTimeOut, PreemptTimeOut);
  //
  //  ENTRY -
  //
  //    RelationName : array of char
  //      The name of the relation to be locked.
  //
  //    LockTimeOut : cardinal
  //      The time in seconds to try to lock.
  //
  //    PreemptTimeOut : cardinal
  //      The time in seconds to not allow lock preempting.
  //
  //  EXIT -
  //
  //    Sage error is set if 'RelationName' is invalid or the relation
  //      'RelationName' is already locked.
  //




  procedure WriteRecord
             (const Relation : array of char); overload; stdcall;

  exports MultSage.WriteRecord (const Relation : array of char) name 'MultSage_WriteRecord';




  procedure WriteRecord
             (const Relation : string); overload; stdcall;

  exports MultSage.WriteRecord (const Relation : string) name 'MultSage_STRWriteRecord';




  procedure GetRecordLocking
             (var   lockingEnabled : boolean); stdcall;

  exports GetRecordLocking name 'MultSage_GetRecordLocking';




  procedure ReduceLongUserID
             (const longUserID     : array of char;
              var   acceptedUserID : array of char); overload; stdcall;

  exports ReduceLongUserID (const longUserID     : array of char;
                            var   acceptedUserID : array of char) name 'MultSage_ReduceLongUserID';

  //*
  //  ReduceLongUserID - Reduce a long user ID to an acceptable unique 3 char. one.
  //




  procedure ReduceLongUserID
             (const longUserID     : string;
              var   acceptedUserID : array of char); overload; stdcall;

  exports ReduceLongUserID (const longUserID     : string;
                            var   acceptedUserID : array of char) name 'MultSage_STRReduceLongUserID';

  //*
  //  STRReduceLongUserID - See documentation of ReduceLongUserID.
  //




  procedure GetMaxUsers
             (var   maximumUsers : cardinal); stdcall;

  exports GetMaxUsers name 'MultSage_GetMaxUsers';




  procedure SetMaxUsers
             (const maximumUsers : cardinal); stdcall;

  exports SetMaxUsers name 'MultSage_SetMaxUsers';




  function OpenSystemDirect
             (const Dictionary : array of char;
              const MaxForms   : cardinal;
              const MaxScreens : cardinal;
              const BufferSize : cardinal) : ModSys.INT32; overload; stdcall;

  exports MultSage.OpenSystemDirect (const Dictionary : array of char;
                                     const MaxForms   : cardinal;
                                     const MaxScreens : cardinal;
                                     const BufferSize : cardinal) name 'MultSage_MultOpenSystemDirect';




  function OpenSystemDirect
             (const Dictionary : string;
              const MaxForms   : cardinal;
              const MaxScreens : cardinal;
              const BufferSize : cardinal) : ModSys.INT32; overload; stdcall;

  exports MultSage.OpenSystemDirect (const Dictionary : string;
                                     const MaxForms   : cardinal;
                                     const MaxScreens : cardinal;
                                     const BufferSize : cardinal) name 'MultSage_STRMultOpenSystemDirect';




  procedure CloseSystemDirect
             (const systemNumber : ModSys.INT32); stdcall;

  exports CloseSystemDirect name 'MultSage_CloseSystemDirect';




  procedure OpenRelationDirect
             (const systemNumber   : cardinal;
              const relationNumber : cardinal;
              const Modify         : boolean); stdcall;

  exports OpenRelationDirect name 'MultSage_OpenRelationDirect';




  procedure CloseRelationDirect
             (const systemNumber   : cardinal;
              const relationNumber : cardinal); stdcall;

  exports CloseRelationDirect name 'MultSage_CloseRelationDirect';




  function TotalRecordsDirect
             (const systemNumber   : cardinal;
              const relationNumber : cardinal) : ModSys.INT32; stdcall;

  exports TotalRecordsDirect name 'MultSage_TotalRecordsDirect';




  function RelationIsOpenDirect
             (const systemNumber   : cardinal;
              const relationNumber : cardinal) : boolean; stdcall;

  exports RelationIsOpenDirect name 'MultSage_RelationIsOpenDirect';




Send mail to   warren.merrill@inl.gov with questions or comments about this web site.
Copyright © 1989-2006 Battelle Energy Alliance