home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
modula2
/
library
/
btrintfc
/
binterfa.def
< prev
next >
Wrap
Text File
|
1988-05-13
|
39KB
|
1,107 lines
DEFINITION MODULE bInterface;
(*-------------------------------------------------------------*)
(* b I N T E R F A C E *)
(* Modula-2 Library of Btrieve Support procedures *)
(* Copyright (C) 1988 by *)
(* WILKEN & SABELBERG Software GbR, Braunschweig, Germany *)
(* All rights reserved *)
(*-------------------------------------------------------------*)
(*
Btrieve is a trademark of SoftCraft, A Novell Company
*)
(* Autoren: Egbert Bebenroth, Holger Kanwischer
Status : freigegeben
*)
(* Bearbeitungsstand:
04.05.88 EB v1.01
09.05.88 HK v1.02
*)
(*-------------------------------------------------------------*)
FROM SYSTEM IMPORT BYTE;
(*-------------------------------------------------------------*)
(* T Y P E D E F I N I T I O N E N F ü R C R E A T E *)
(*-------------------------------------------------------------*)
CONST
cAuto = 0;
(*
für automatische Berechnung von dataLen, FileSpecs.RecLen:
*)
(*-------------------------------------------------------------*)
cMaxKeySeg = 24;
(*
max. Anzahl der Schlüsselsegmente pro Datei -
Btrieve-Handbuch: Seite 1-4, 1-9.
*)
(*-------------------------------------------------------------*)
cDefaultPageSize = 1024;
(*
Standard-Seitengröße, wenn Btrieve ohne 'P'-Parameter
gestartet wird
*)
(*-------------------------------------------------------------*)
TYPE
ePageSize = CARDINAL;
(*
eigentlich wäre ein Aufzählungstyp angemessen, z.B.:
ePageSize =
(page512, page1024, page1536, page2048, page2560,
page3072, page3584, page4096);
es wurde CARDINAL gewählt, damit TSIZE(ePageSize) = 2 ist
*)
(*-------------------------------------------------------------*)
bKeyNum = CARDINAL;
(*
eigentlich [1..cMaxKeySeg];
aber es muß gelten: TSIZE(bKeyNum)=2
*)
(*-------------------------------------------------------------*)
eFileFlags = (variableLen, blankCompression,
preallocation);
(* Btrieve-Handbuch: (Kap. 4.10:) Seite 2-10.
Attrribute:
variable length
blank compression
preallocation
*)
(*-------------------------------------------------------------*)
sFileFlags = SET OF eFileFlags;
(*-------------------------------------------------------------*)
eKeyFlags = (duplicatesAllowed, modifiable,
sortBinary, defineNullValue,
notLastSegment, sortByAlternateSeq,
sortDescending, supplemental,
useExtendedKeyType);
(*
Btrieve-Handbuch: (Kap. 4.10:) Seite 2-11, 2-12.
Attribute:
duplicate
modifiable
binary
null
segmented
alt col seq
descending
supplemental
extended type
*)
(*-------------------------------------------------------------*)
sKeyFlags = SET OF eKeyFlags;
(*-------------------------------------------------------------*)
eExtendedKeyTypes = (string, integer, float, date, time,
decimal, money, logical, numeric, bfloat,
lstring, zstring, notAllowed12,
notAllowed13, unsignedBinary);
(*
Btrieve-Handbuch: (Kap. 4.10:) Seite 2-13.
Namen wie im Btrieve-Handbuch
*)
(*-------------------------------------------------------------*)
rFileSpecs = RECORD
RecLen : CARDINAL;
PageSize : ePageSize;
NumIndexes : bKeyNum;
NumRecs : LONGINT;
FileFlags : sFileFlags;
(*[+JPI,+LOG*)
(* hinter FileFlags, byte reversed! *)
FillByte : CHAR;
(*]*)
Reserved : CARDINAL;
Allocation : CARDINAL;
END;
(*
'RecLen' : Record-Länge
'PageSize' : 512,1024,1536,2048,2560,3072,3584,4096
'NumIndexes': Anz. Indexe: 1..24 (1..8)
bei PageSize > (=) 512
'NumRecs' : Zahl der Datensätze in der Datei; dieses
Feld wird durch die Routine 'StatusOfFile'
besetzt
'FileFlags' : siehe oben [vor Version 4.10: variableLenFlag
(fixed,variable)]
'Reserved' : MOMENTAN NICHT BENUTZT (laut Handbuch)
'Allocation': Zahl der Seiten, die präalloziert werden
sollen
Btrieve-Handbuch: Seite 9.13; (Kap. 4.10:) Seite 2-9.
*)
(*-------------------------------------------------------------*)
rKeySpec = RECORD
KeyPos : CARDINAL;
KeyLen : CARDINAL;
KeyFlags : sKeyFlags;
NotUsed : LONGINT;
ExtendedKeyType : eExtendedKeyTypes;
NullValue : CHAR;
Reserved : LONGINT;
END;
(*
'KeyPos' : 1..RecLen-KeyLen
Btrieve-Handbuch: Seite 3-8.
'KeyLen' : 1..255
Btrieve-Handbuch: Seite 3-8.
'KeyFlags' : siehe eKeyFlags
'NotUsed' : MOMENTAN NICHT BENUTZT (laut Handbuch)
'ExtendedKeyType' : s. eExtendedKeyTypes (muß 1 Byte lang
sein!)
'NullValue' : Btrieve-Handbuch: Seite 2-6, 3-9, 9-16.
'Reserved' : MOMENTAN NICHT BENUTZT (laut Handbuch)
Btrieve-Handbuch: Seite 9-13; (Kap. 4.10:) Seite 2-9.
*)
(*-------------------------------------------------------------*)
rAlternateSeq = RECORD
Name : ARRAY [0..7] OF CHAR;
SortValueTable : ARRAY CHAR OF CHAR;
END;
(*
'Name' : Tabellen-Name (ohne Signaturbyte 0ACH)
'SortValueTable' : Btrieve-Handbuch: Seite 2-7, 3-9, 9-16.
*)
(*------------------------------------------------------------*)
(* W E I T E R E T Y P E - D E F I N I T I O N E N : *)
(*------------------------------------------------------------*)
tBtrvFile = [0..255];
(*
Btrieve File Handle: siehe Dokumentation
*)
(*------------------------------------------------------------*)
aDosPath = ARRAY [0..64] OF CHAR;
(*
DOS-Pfadnamen und Dateinamen
*)
(*------------------------------------------------------------*)
aOwnerName = ARRAY [0..7] OF CHAR;
(*
Btrieve-Handbuch: Seite 2-27, 9-71
*)
(*------------------------------------------------------------*)
eOpenMode = (normal, accelerated, readOnly, verify,
exclusive);
(*
Btrieve-Handbuch: Seite 9-63, (Kap. 4.10:) 2-22.
*)
(*------------------------------------------------------------*)
eGetOp = (equal, next, previous, greater,
greaterOrEqual, lessThan,
lessThanOrEqual, lowest, highest);
(*
Operatoren für die Routinen 'GetRec' und 'GetKey':
siehe Dokumentation
*)
(*------------------------------------------------------------*)
eLockMode = (standard, wait, noWait, multipleWait,
multipleNoWait);
(*
Btrieve-Handbuch: Seite 9-61; (Kap. 4.10:) 2-22.
*)
(*------------------------------------------------------------*)
eExtendStoreMode = (normalMode, immediate);
(*
Btrieve-Handbuch: Seite 9-24.
*)
(*------------------------------------------------------------*)
eAccessRestrict = (encryp, readOnlyAccess);
sAccessRestrict = SET OF eAccessRestrict;
(*
Btrieve-Handbuch: Seite 9-71
*)
(*------------------------------------------------------------*)
eUnlockMode = (single, oneMultiple, allMultiple);
(*
Btrieve-Handbuch: Seite 9-83; (Kap. 4.10:) 2-24.
*)
(*------------------------------------------------------------*)
rVersion = RECORD
Version : CARDINAL;
Revision : CARDINAL;
NetIndicator : CHAR;
END;
(*
'Version' : Versionsnummer, momentan aktuell: 4
'Revision' : Revisionsnummer, momentan aktuell: 10
'NetIndicator' : 'N' für Btrieve/N; ' ' für Btrieve
*)
(*------------------------------------------------------------*)
eBtrvStatus =
(done,
invalidOperation,
ioErr,
noOpen,
keyNotFound,
duplicatesErr,
invalidKeyNum,
differentKeyNum,
invalidPositioning,
endOfFile,
modifiableErr,
invalidFileName,
fileNotFound,
extensionErr,
preOpenErr,
preImageErr,
expansionErr,
closeErr,
diskFull,
unrecoverableErr,
recordManagerInactive,
keyBufErr,
recordBuf,
positionBlock,
pageSize,
createIOErr,
numberOfKeys,
keyPos,
recordLen,
keyLen,
btrieveFileName,
extendErr,
extendIOErr,
notUsed33,
extendName,
directoryErr,
transActionErr,
beginTransaction,
transactionControlFile,
endAbortFile,
transactionMaxFiles,
transactionOpenClose,
incompleteAcceleratedAccess,
invalidDataRecordAddress,
nullKeyPath,
inconsistentKeyFlags,
accessDenied,
maximumOpenFiles,
invalidAlternateSequenceDef,
keyTypeErr,
ownerAlreadySet,
invalidOwner,
errorWritingCache,
invalidInterface,
variablePageErr,
notUsed55,
incompleteIndex,
expandedMemoryErr,
notUsed58,
notUsed59,
notUsed60,
notUsed61,
notUsed62,
notUsed63,
notUsed64,
notUsed65,
notUsed66,
notUsed67,
notUsed68,
notUsed69,
notUsed70,
notUsed71,
notUsed72,
notUsed73,
notUsed74,
notUsed75,
notUsed76,
notUsed77,
notUsed78,
notUsed79,
conflict,
lockErr,
lostPosition,
readOutsideTransaction,
recordInUse,
fileInUse,
fileFull,
handleFull,
modeErr,
nameErr,
deviceFull,
serverErr,
transactionFull,
incompatibleLockType,
notUsed94,
notUsed95,
notUsed96,
dataBufTooSmall,
notUsed98,
demoErr);
(*
Status Codes:
siehe Btrieve-Handbuch Appendix B, Seite B-1 bis B-15
und (Kap. 4.10:) Appendix A, Seite A-1 bis A-4.
*)
(* done: 00
invalidOperation: 01
ioErr: 02
noOpen: 03
keyNotFound: 04
duplicatesErr: 05
invalidKeyNum: 06
differentKeyNum: 07
invalidPositioning: 08
endOfFile: 09
modifiableErr: 10
invalidFileName: 11
fileNotFound: 12
extensionErr: 13
preOpenErr: 14
preImageErr: 15
expansionErr: 16
closeErr: 17
diskFull: 18
unrecoverableErr: 19
*)
(*
recordManagerInactive: 20
keyBufErr: 21
recordBuf: 22
positionBlock: 23
pageSize: 24
createIOErr: 25
numberOfKeys: 26
keyPos: 27
recordLen: 28
keyLen: 29
btrieveFileName: 30
extendErr: 31
extendIOErr: 32
notUsed33: 33
extendName: 34
directoryErr: 35
transActionErr: 36
beginTransaction: 37
transactionControlFile: 38
*)
(*
endAbortFile: 39
transactionMaxFiles: 40
transactionOpenClose: 41
incompleteAcceleratedAccess: 42
invalidDataRecordAddress: 43
nullKeyPath: 44
inconsistentKeyFlags: 45
accessDenied: 46
maximumOpenFiles: 47
invalidAlternateSequenceDef: 48
keyTypeErr: 49
ownerAlreadySet: 50
invalidOwner: 51
errorWritingCache: 52
invalidInterface: 53
variablePageErr: 54
notUsed55: 55
incompleteIndex: 56
*)
(*
expandedMemoryErr: 57
notUsed58: 58
notUsed59: 59
notUsed60: 60
notUsed61: 61
notUsed62: 62
notUsed63: 63
notUsed64: 64
notUsed65: 65
notUsed66: 66
notUsed67: 67
notUsed68: 68
notUsed69: 69
notUsed70: 70
notUsed71: 71
notUsed72: 72
notUsed73: 73
notUsed74: 74
notUsed75: 75
*)
(*
notUsed76: 76
notUsed77: 77
notUsed78: 78
notUsed79: 79
conflict: 80
lockErr: 81
lostPosition: 82
readOutsideTransaction: 83
recordInUse: 84
fileInUse: 85
fileFull: 86
handleFull: 87
modeErr: 88
nameErr: 89
deviceFull: 90
serverErr: 91
transactionFull: 92
incompatibleLockType: 93
*)
(*
notUsed94: 94
notUsed95: 95
notUsed96: 96
dataBufTooSmall: 97
notUsed98: 98
demoErr); 99
*)
(*---------------------------------------------------------------*)
VAR
WrBtrvStatus : PROCEDURE(eBtrvStatus);
WrInterfStatus : PROCEDURE(CARDINAL);
WrOp : PROCEDURE(CARDINAL);
(*
Prozedurvariable für Debugging-Zwecke, siehe Dokumentation:
*)
(*---------------------------------------------------------------*)
PROCEDURE AbortTransaction() : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-4.
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE BeginTransaction(lockMode : eLockMode) : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-7 (und Dokumentation).
Eingabe:
'lockMode'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE ClearOwner(file : tBtrvFile) : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-9.
Eingabe:
'file'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE ClearVar(VAR var : ARRAY OF BYTE);
]*)
(*[+TAY*)
PROCEDURE ClearVar(LVAR var : ARRAY OF BYTE);
(*]*)
(*
Zweck:
Alle Bytes der Variablen 'var' werden auf Null gesetzt.
(der Record-Manager wird nicht aufgerufen)
Ausgabe:
'var'
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE CloseFile(VAR file : tBtrvFile) : eBtrvStatus;
]*)
(*[+TAY*)
PROCEDURE CloseFile(LVAR file : tBtrvFile) : eBtrvStatus;
(*]*)
(*
siehe 'Close', Btrieve-Handbuch: Seite 9-11.
Eingabe:
'file'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE CreateFile(filename : aDosPath;
fileSpecs : rFileSpecs;
keySpecs : ARRAY OF rKeySpec;
alternateSeq : rAlternateSeq ) :
eBtrvStatus;
(*
siehe 'Create', Btrieve-Handbuch: Seite 9-13; (Kap. 4.10:) 2-8
und Dokumentation.
Eingabe:
'filename' : siehe Btrieve Handbuch Seite 9-14,
(+ Kap. 4.10:) 2-7:
'fileSpecs'
'keySpecs'
'alternateSeq'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE CreateSupplementalIndex(file : tBtrvFile;
keySpecs : rKeySpec ) :
eBtrvStatus;
(*
Btrieve-Handbuch: (Kap. 4.10:) Seite 2-17.
Eingabe:
'file'
'keySpecs'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE CurLockMode( file : tBtrvFile;
(*[-TAY
VAR lockMode : eLockMode) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR lockMode : eLockMode) : eBtrvStatus;
(*]*)
(*
Zweck:
Der Variablen 'lockMode' wird der Lock-Mode der
geöffneten Datei 'file' zugewiesen.
(der Record-Manager wird nicht aufgerufen)
Eingabe:
'file'
'eLockMode'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE DataLen() : CARDINAL;
(* Zweck:
gibt den Wert der Daten-Puffer-Länge nach der letzten
Btrieve-Operation zurück.
(der Record-Manager wird nicht aufgerufen)
Rückgabe:
gibt den Wert der Daten-Puffer-Länge nach der letzten
Btrieve-Operation zurück.
*)
(*---------------------------------------------------------------*)
PROCEDURE DeleteRec(file : tBtrvFile;
keyNum : bKeyNum ) : eBtrvStatus;
(*
siehe 'Delete', Btrieve-Handbuch: Seite 9-18.
Eingabe:
'file'
'keyNum'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE DropSupplementalIndex(file : tBtrvFile;
keyNum : bKeyNum ) :
eBtrvStatus;
(*
Btrieve-Handbuch: (Kap. 4.10:) Seite 2-19.
Eingabe:
'file'
'keyNum'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE EndTransaction() : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-21.
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE ExtendFile(file : tBtrvFile;
extensionFilename : aDosPath;
extendStoreMode : eExtendStoreMode) :
eBtrvStatus;
(*
siehe 'Extend', Btrieve-Handbuch Seite 9-24.
Eingabe:
'file'
'extensionFilename'
'extendStoreMode' : normalMode: Daten erst dann in
Extension-File schreiben,
wenn Primär-File voll
immediate: Daten ab sofort in
Extension-File schreiben,
auch dann wenn Primär-File
noch nicht voll
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE Size(field : ARRAY OF BYTE) : CARDINAL;
(*
Zweck:
Rückgabe der Länge der Variablen oder des Record-Feldes
'field' in Byte.
(der Record-Manager wird nicht aufgerufen)
Eingabe:
'field' : RECORD-Feld eines Schlüssels (oder beliebige
Variable)
Rückgabe:
Länge von 'field'. Nützliche Anwendung ist die Bestimmung
der Schlüssel-Spezifikationen für 'CreateFile'.
Anwendungsbeispiel:
KeySpec.Len := Size(recordname.feldname)
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE FieldPos(VAR field,
record : ARRAY OF BYTE) : CARDINAL;
]*)
(*[+TAY*)
PROCEDURE FieldPos(LVAR field,
record : ARRAY OF BYTE) : CARDINAL;
(*]*)
(*
Zweck:
Ermittelung der Position des Record-Feldes 'field'
innerhalb des Records 'record'.
(der Record-Manager wird nicht aufgerufen)
Eingabe:
'field' : RECORD-Feld eines Schlüssels (oder beliebige
Variable).
'record' : Name eines RECORDs der 'field' als Feld enthält
Rückgabe:
Position von 'field' innerhalb 'record'.
Die Position des ersten Feldes eines RECORDs ist 1, des
nächsten 2 etc.
Ist 'field' nicht in 'record'enthalten, wird 0 zurückge-
geben.
Nützliche Anwendung ist die Bestimmung der Schlüssel-Spezi-
fikationen für 'CreateFile'.
Anwendungsbeispiel:
KeySpec.Pos := FieldPos(recordname.feldname, recordname)
ACHTUNG:
Nach Ausführung von FieldPos sind beide Variableninhalte
gelöscht!
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE FillWithSpaces(VAR var : ARRAY OF BYTE);
]*)
(*[+TAY*)
PROCEDURE FillWithSpaces(LVAR var : ARRAY OF BYTE);
(*]*)
(*
Zweck:
(Vor-)Besetzen der Variablen 'var' mit Spaces, nützlich
z.B. bei Verwendung von Datensätzen variabler Länge mit
der Option 'blank compression'.
(der Record-Manager wird nicht aufgerufen)
Ausgabe:
'var' : alle Bytes von 'var' werden auf " " (SPACE) gesetzt
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE GetDirectory( drive : CHAR;
VAR curDir : aDosPath) : eBtrvStatus;
]*)
(*[+TAY*)
PROCEDURE GetDirectory( drive : CHAR;
LVAR curDir : aDosPath) : eBtrvStatus;
(*]*)
(*
Btrieve-Handbuch: Seite 9-29.
Eingabe:
'drive' : erlaubt sind die Zeichen '@'(für current),
'A','B','C','D', etc.
Ausgabe:
'curDir'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE GetRecDirect( file : tBtrvFile;
pos : LONGINT;
keyNum : bKeyNum;
dataLen : CARDINAL;
(*[-TAY
VAR keyBuf : ARRAY OF BYTE;
VAR dataBuf : ARRAY OF BYTE) :
]*)
(*[+TAY*)
LVAR keyBuf : ARRAY OF BYTE;
LVAR dataBuf : ARRAY OF BYTE) :
(*]*)
eBtrvStatus;
(*
siehe 'Get Direct', Btrieve-Handbuch: Seite 9-26.
Eingabe:
'file'
'pos' : (siehe 'GetPos')
'keyNum'
'dataLen' : bei f e s t e r Recordlänge auf 0 setzen!
Ausgabe:
'keyBuf'
'dataBuf'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE GetRec( file : tBtrvFile;
operation : eGetOp;
keyNum : bKeyNum;
dataLen : CARDINAL;
(*[-TAY
VAR keyBuf : ARRAY OF BYTE;
VAR dataBuf : ARRAY OF BYTE) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR keyBuf : ARRAY OF BYTE;
LVAR dataBuf : ARRAY OF BYTE) : eBtrvStatus;
(*]*)
(*
siehe 'Get Equal' bis 'Get Previous',
Btrieve-Handbuch: ab Seite 9-31.
Eingabe:
'file'
'operation' : equal,next,previous,greater,greaterOrEqual,
lessThan,lessThanOrEqual,lowest,highest
'keyNum'
'dataLen' : bei f e s t e r Recordlänge auf 0 setzen!
EinAus:
'keyBuf' : bei 'equal': nur Eingabe;
bei 'highest','lowest': nur Ausgabe
Ausgabe:
'dataBuf'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE GetKey( file : tBtrvFile;
operation : eGetOp;
keyNum : bKeyNum;
(*[-TAY
VAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
(*]*)
(*
Btrieve-Handbuch: Seite 9-42.
Eingabe:
'file'
'operation' : equal,next,previous,greater,greaterOrEqual,
lessThan,lessThanOrEqual,lowest,highest
'keyNum'
EinAus:
'keyBuf' : bei 'equal' : Eingabe;
bei 'highest','lowest' : Ausgabe
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE GetPos( file : tBtrvFile;
VAR pos : LONGINT ) : eBtrvStatus;
]*)
(*[+TAY*)
PROCEDURE GetPos( file : tBtrvFile;
LVAR pos : LONGINT ) : eBtrvStatus;
(*]*)
(*
siehe 'Get Position', Btrieve-Handbuch: Seite 9-54.
Eingabe:
'file'
Ausgabe:
'pos' : (Verwendung: siehe 'GetDirect')
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE InsertRec( file : tBtrvFile;
keyNum : bKeyNum;
dataBuf : ARRAY OF BYTE;
dataLen : CARDINAL;
(*[-TAY
VAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
(*]*)
(*
siehe 'Insert', Btrieve-Handbuch: Seite 9-58.
Eingabe:
'file'
'keyNum'
'dataBuf'
'dataLen' : bei f e s t e r Recordlänge auf 0 setzen!
Ausgabe:
'keyBuf'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE OpenFile( mode : eOpenMode;
ownerName : aOwnerName;
filename : aDosPath;
(*[-TAY
VAR file : tBtrvFile ) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR file : tBtrvFile ) : eBtrvStatus;
(*]*)
(*
siehe 'Open', Btrieve-Handbuch: Seite 9-63; (Kap. 4.10:) 2-22.
Eingabe:
'mode'
'ownerName' : (falls für das zu öffnende File benötigt)
'filename'
Ausgabe:
'file'
*)
(*---------------------------------------------------------------*)
PROCEDURE Reset(onlyForOwnStation : BOOLEAN;
whichStation : ARRAY OF BYTE) : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-67.
Eingabe:
'onlyForOwnStation' : TRUE/FALSE, wenn die vom eigenen / von
einem fremden Arbeitsplatz belegten
Resourcen freigegeben werden sollen.
'whichStation' : nur dann relevant, wenn
onlyForOwnStation = FALSE
(s. Handb. S. 9-68)
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE SetDirectory(dirPath : aDosPath) : eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-69.
Eingabe:
'dirPath'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE SetLockMode(file : tBtrvFile;
lockMode : eLockMode) : eBtrvStatus;
(*
Zweck:
Setzt den Lock-Mode für 'Begin Transaction' und die
'Get...'-Operationen für die
geöffnete Datei 'file' (siehe Dokumentation).
(der Record-Manager wird nicht aufgerufen)
Eingabe:
'file'
'lockMode'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE SetOwner(file : tBtrvFile;
ownerName : aOwnerName;
accessRestrict : sAccessRestrict) :
eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-71.
Eingabe:
'file'
'ownerName'
'accessRestrict'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE StatusOfFile( file : tBtrvFile;
VAR fileSpecs : rFileSpecs;
VAR keySpecs : ARRAY OF rKeySpec;
VAR alternateSeq : rAlternateSeq;
VAR extensionFilename : aDosPath) :
eBtrvStatus;
]*)
(*[+TAY*)
PROCEDURE StatusOfFile( file : tBtrvFile;
LVAR fileSpecs : rFileSpecs;
LVAR keySpecs : ARRAY OF rKeySpec;
LVAR alternateSeq : rAlternateSeq;
LVAR extensionFilename : aDosPath) :
eBtrvStatus;
(*]*)
(*
siehe 'Stat', Btrieve-Handbuch: Seite 9-74.
Eingabe:
'file'
'fileSpecs'
Ausgabe:
'keySpecs'
'alternateSeq'
'extensionFilename' : min 64 Zeichen lange Variable nötig.
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE StepRecDirect( file : tBtrvFile;
dataLen : CARDINAL;
(*[-TAY
VAR dataBuf : ARRAY OF BYTE) :
]*)
(*[+TAY*)
LVAR dataBuf : ARRAY OF BYTE) :
(*]*)
eBtrvStatus;
(*
siehe 'Step Direct', Btrieve-Handbuch: Seite 9-78.
Eingabe:
'file'
'dataLen' : bei f e s t e r Recordlänge auf 0 setzen!
Ausgabe:
'dataBuf'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE Stop(): eBtrvStatus;
(*
Btrieve-Handbuch: Seite 9-81.
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE UnlockRec(file : tBtrvFile;
unlockMode : eUnlockMode;
pos : LONGINT ) : eBtrvStatus;
(*
siehe 'Unlock', Btrieve-Handbuch: Seite 9-83;
(Kap. 4.10:) 2-24.
Eingabe:
'file'
'unlockMode'
'pos' - s. Btrieve-Handbuch Seite 2-25
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE UpdateRec( file : tBtrvFile;
keyNum : bKeyNum;
dataBuf : ARRAY OF BYTE;
dataLen : CARDINAL;
(*[-TAY
VAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
]*)
(*[+TAY*)
LVAR keyBuf : ARRAY OF BYTE) : eBtrvStatus;
(*]*)
(*
siehe 'Update', Btrieve-Handbuch: Seite 9-85.
Eingabe:
'file'
'keyNum'
'dataBuf'
'dataLen' : bei f e s t e r Recordlänge auf 0 setzen!
Ausgabe:
'keyBuf'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
(*[-TAY
PROCEDURE Version(VAR version : rVersion) : eBtrvStatus;
]*)
(*[+TAY*)
PROCEDURE Version(LVAR version : rVersion) : eBtrvStatus;
(*]*)
(*
Btrieve-Handbuch: Seite 9-88.
Ausgabe:
'version'
Rückgabe:
'eBtrvStatus'
*)
(*===============================================================*)
(*
Es folgen unterstützende Routinen, die keinen Aufruf des
Btrieve-Recordmanagers zur Folge haben.
*)
PROCEDURE NumKeySpecs( fileSpecs : rFileSpecs;
keySpecs : ARRAY OF rKeySpec;
(*[-TAY
VAR num : CARDINAL ) :
]*)
(*[+TAY*)
LVAR num : CARDINAL ) :
(*]*)
eBtrvStatus;
(*
Zweck:
Errechnet aus den Spezifikationen 'fileSpecs' und
'keySpecs' die Anzahl 'num' der belegten Elemente (vom
Typ 'rKeySpec') im Array 'keySpecs'. Dies ist die
Gesamt-Anzahl der in 'keySpecs' spezifizierten
Schlüsselsegmente.
Eingabe:
'fileSpecs'
'KeySpecs'
Ausgabe:
'num'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE AnyAlternateSeq( fileSpecs : rFileSpecs;
keySpecs : ARRAY OF rKeySpec;
(*[-TAY
VAR flag : BOOLEAN ) :
]*)
(*[+TAY*)
LVAR flag : BOOLEAN ) :
(*]*)
eBtrvStatus;
(*
Zweck:
Stellt aus den Informationen in 'fileSpecs'/'keySpecs'
fest, ob eine 'Alternate Collating Sequence' vorliegt
(dann 'flag = TRUE')
Eingabe:
'fileSpecs'
'KeySpecs'
Ausgabe:
'flag'
Rückgabe:
'eBtrvStatus'
*)
(*---------------------------------------------------------------*)
PROCEDURE SetMaxPageSize(pageSize : ePageSize) : eBtrvStatus;
(*
Zweck:
Setzt die maximal erlaubte Seiten-Größe. Diese sollte
sinvollerweise zur '/P:xxxx'-Option beim Installieren des
Record-Managers 'BTRIEVE' passen. Die gesetzte maximale
Seitengröße wird beim automatischen Berechnen der günstigsten
Seitengröße in 'CreateFile' nicht überschritten.
Eingabe:
'pageSize' : die maximal gewünschte oder zulässige
Page-Size; erlaubte Werte:
512, 1024, 1536, 2048, 2560, 3072, 3584,
4096.
Rückgabe:
'eBtrvStatus' : Status-24-PageSize, wenn Wert nicht erlaubt.
Hinweis:
Im Initialisierungsteil des Moduls wird der Wert
'cDefaultPageSize' gesetzt.
*)
(*---------------------------------------------------------------*)
END bInterface.