Files
TeslaRel410/BORLAND/BDE/EXAMPLES/PASCAL/NAVIGATE.PAS
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
  is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
  Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
  (extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
  BT game source (never mixed into CODE/). Round 1-3 state:
  * 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
    (BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
    since 1996.
  * BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
    its binary-recorded line 400 exactly.
  * BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
    (Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
    TeamScore=12 flagged [T4]).
  * MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
    (VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
    the period compiler is the drift detector).
  * Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
    (per-TU verification sweep under authentic OPT.MAK flags).
  * README: corrected roadmap - MECH.HPP is the capstone grown with the mech
    TU reconstructions; BTREG.CPP green = the header-family milestone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 07:33:26 -05:00

125 lines
4.2 KiB
ObjectPascal

{ navigate.pas }
program Navigate;
{$IfDef VER80}
uses SnipTool, SnipData, SysUtils, WinTypes, WinProcs,
DbiProcs, DbiTypes, DbiErrs;
{$Else}
uses WinTypes, WinCrt, Strings, DbiProcs, DbiTypes, DbiErrs,
SnipTool, SnipData;
{$EndIf}
const
szTblName = 'customer'; { Name of table to be created. }
szTblType = szPARADOX; { Table type to use. }
{========================================================================
Code: Navigate();
Input: None.
Return: None.
Description:
This sample code will open the customer database and will
navigate around it. Such as getting and displaying the
current record. Getting the next record. Getting the
previous record and getting the record relative to the offset
given.
======================================================================== }
var
rslt: DBIResult; { Value returned from IDAPI functions }
hDb: hDBIDb; { Handle to the database }
hCur: hDBICur; { Handle to the table }
begin
Screen('*** Navigation Example ***');
Screen(' Initializing IDAPI...');
if (InitAndConnect(hDb) <> DBIERR_NONE) then { Terminate example if }
begin { Initialization fails }
Screen('');
Screen('*** End of Example ***');
exit;
end;
Screen(' Setting the Database directory...');
ChkRslt(DbiSetDirectory(hDb, pCHAR(szTblDirectory)), DBIERR_NONE,
' Error - SetDirectorry.');
Screen(' Opening the '+szTblName+' Table...');
rslt := ChkRslt(DbiOpenTable(hDb, pCHAR(szTblName), pCHAR(szTblType),
nil, nil, 0, dbiREADWRITE,
dbiOPENSHARED, xltFIELD, FALSE, nil,
hCur),
DBIERR_NONE, ' Error - OpenTable.');
if (rslt <> DBIERR_NONE) then { Check if successfull }
begin
Screen(' Close the Database and exit IDAPI...');
CloseDbAndExit(hDb);
Screen('');
Screen('*** End of Example ***');
exit;
end;
Screen(' Display the first ten records in the Table...');
DisplayInMemoryTable(hCur, 10);
Screen('');
Screen(' Set the current record to the first record in the'+
' table.');
ChkRslt(DbiSetToBegin(hCur), DBIERR_NONE, ' Error - SetToBegin.');
{We need to display the next record as we are currently at the BOF crack.}
DisplayNextRecord(hCur);
Screen('');
Screen(' Change to the next record...');
ChkRslt( DbiGetNextRecord(hCur, dbiNOLOCK, nil, nil),
DBIERR_NONE, ' Error - GetNextRecord.');
Screen(' New current record:');
DisplayCurrentRecord(hCur);
{ Skip 3 records. We will be passing the function a nil
record buffer as we only want to skip and we don't want to fill
a record buffer.}
Screen('');
Screen(' Getting the 3rd record relative to the current record...');
Screen(' New Current record:');
ChkRslt( DbiGetRelativeRecord(hCur, 3, dbiNOLOCK, nil, nil),
DBIERR_NONE, ' Error - GetRelativeRecord.');
DisplayCurrentRecord(hCur);
Screen('');
Screen(' Set the cursor to the previous record...');
Screen(' New Current record:');
ChkRslt( DbiGetPriorRecord(hCur, dbiNOLOCK, nil, nil),
DBIERR_NONE, ' Error - GetPriorRecord.');
DisplayCurrentRecord(hCur);
Screen('');
Screen(' Set the current record to the last record in the table');
Screen(' New Current record:');
{ Set the cursors current record pointer to EOF }
ChkRslt( DbiSetToEnd(hCur),
DBIERR_NONE, ' Error - SetToEnd.');
{ Set the cursors to the last record in the table. }
ChkRslt( DbiGetRelativeRecord(hCur, -1, dbiNOLOCK, nil, nil),
DBIERR_NONE, ' Error - GetRelativeRecord.');
DisplayCurrentRecord(hCur);
Screen('');
Screen(' Close the database and exit IDAPI...');
CloseDbAndExit(hDb);
Screen('*** End of Example ***');
end.