126 lines
3.0 KiB
Plaintext
126 lines
3.0 KiB
Plaintext
Function SRP_RTP65(Service, Param1, Param2, Param3)
|
|
|
|
/********************************************************************************************************
|
|
|
|
This program is proprietary and is not to be used by or disclosed to others, nor is it to
|
|
be copied without written permission.
|
|
|
|
Name : SRP RTP65
|
|
|
|
Description : Service shell for RTP65(Method, Handle, Key, Record, Reserved, Status)
|
|
|
|
Notes :
|
|
|
|
Parameters :
|
|
|
|
History (Date, Initials, Notes)
|
|
05/06/10 fjt Initial development
|
|
|
|
********************************************************************************************************/
|
|
|
|
Declare subroutine RTP65
|
|
|
|
$insert SERVICE_INSERT
|
|
|
|
Equ Create$ to 0
|
|
Equ Open$ to 1
|
|
Equ Close$ to 2
|
|
Equ Clear$ to 3
|
|
Equ Read$ to 4
|
|
Equ Write$ to 5
|
|
Equ Delete$ to 6
|
|
|
|
Ans = 0
|
|
|
|
Begin Case
|
|
Case Service EQ "R" ; Gosub ReadRecord
|
|
Case Service EQ "W" ; Gosub WriteRecord
|
|
Case Service EQ "D" ; Gosub DeleteRecord
|
|
***
|
|
Case Service EQ "C" ; Gosub CreateTable
|
|
Case Service EQ "O" ; Gosub OpenTable
|
|
Case Service _eqc "Clear" ; Gosub ClearTable
|
|
Case Service _eqc "Close" ; Gosub CloseTable
|
|
End Case
|
|
|
|
GoSub Errors
|
|
|
|
Return Ans
|
|
|
|
|
|
!----- RECORD METHODS -----------------------------------------------------------------------------------
|
|
|
|
|
|
ReadRecord:
|
|
// Reads a record from an open RTP65 table
|
|
Key = Param2
|
|
RTP65(Read$, Param1, Key, Rec, "", Ans)
|
|
If Assigned(Rec) else Rec = ""
|
|
Transfer Rec to Param3
|
|
return
|
|
|
|
|
|
WriteRecord:
|
|
// Writes a record to an open RTP65 table
|
|
Key = Param2
|
|
Rec = Param3
|
|
RTP65(Write$, Param1, Key, Rec, "", Ans)
|
|
return
|
|
|
|
|
|
DeleteRecord:
|
|
// Deletes a record from an open RTP65 table
|
|
Handle = Param1
|
|
Key = Param2
|
|
RTP65(Write$, Handle, Key, "", "", Ans)
|
|
return
|
|
|
|
|
|
!----- TABLE METHODS ------------------------------------------------------------------------------------
|
|
|
|
|
|
CreateTable:
|
|
// Use this method to create an in-memory hash table
|
|
Table = Param1
|
|
RTP65(Create$, "", Table, "", "", Ans)
|
|
return
|
|
|
|
|
|
OpenTable:
|
|
// Opens a previously created RTP65 table
|
|
// Use this method to obtain a handle to the table before using any other RTP65 record methods
|
|
Table = Param1
|
|
RTP65(Open$, Handle, Table, "", "", Ans)
|
|
Transfer Handle to Param2
|
|
return
|
|
|
|
|
|
ClearTable:
|
|
// Deletes all data from a previously opened RTP65 table
|
|
Handle = Param1
|
|
RTP65(Clear$, Handle, "", "", "", Ans)
|
|
return
|
|
|
|
|
|
CloseTable:
|
|
// Closes a previously created RTP65 table
|
|
Handle = Param1
|
|
RTP65(Close$, Handle, "", "", "", Ans)
|
|
return
|
|
|
|
|
|
!----- ERRORS / STATUS ----------------------------------------------------------------------------------
|
|
|
|
|
|
Errors:
|
|
Begin Case
|
|
Case Ans EQ 0 ; Ans = "(0) Success"
|
|
Case Ans EQ 1 ; Ans = "(1) Table already exists"
|
|
Case Ans EQ 2 ; Ans = "(2) Table does not exist"
|
|
Case Ans EQ 3 ; Ans = "(3) Bad Table Handle"
|
|
Case Ans EQ 4 ; Ans = "(4) Table has not been opened or Record does not exist"
|
|
Case Ans EQ 5 ; Ans = "(5) Maximum number of tables exceeded"
|
|
Case Ans EQ 6 ; Ans = "(6) Memory Error"
|
|
End Case
|
|
return
|