My btdefine.inc at the very top has:
{===B-Tree Filer defines=============================================}
{$DEFINE NoNet}
during the initialization of the app, the following code executes:
case ActualNetType of
NoNet : writeln('Single-User');
Novell: writeln('Novell');
MSnet: writeln('Network');
end;
and the user reports seeing Single-User.
Perhaps I should also have stated that the code uses OOfiler.
The error was reported by the following code:
if not IsamOK then begin
case isamerror of
10000: warning('Not enough RAM MEMORY to start ISAM' ,
'Try entering "PBS3 LOWRAM"');
10310: warning('Your Network is not operating.',
'Enter "PBS3 NONET" to operate single-user.');
else warning('Could not start ISAM. Error #'+ long2str(isamerror) ,
'IsamDosError=' + long2str(isamdoserror) +
' DosFunction='+ long2str( isamdosfunc) );
end;
Halt;
end;
I believe the isamDosFunc=2, and the isamDosError= 6002, but I'll have to
check.
Jerry
> My btdefine.inc at the very top has:
>
> {===B-Tree Filer defines=============================================}
> {$DEFINE NoNet}
Hmm, if that's the case, then I must be missing something, because I don't
see how error 10399 can happen when NoNet is defined. (You said it happens
when initially opening the fileblocks, right, and not when calling Browse or
BrowseAgain?)
> I believe the isamDosFunc=2, and the isamDosError= 6002, but I'll
> have to check.
According to my dusty old book on DOS functions, int $21, function 2 is
Display Output (write single ASCII character to the screen). So I doubt
that it is actually function 2.
--Rob [TPX]
> My original post followed a phone message from my user who described what
> was happening. He followed up with an email where he stated he got three
> error messages before the app closed:
>
> Error 10140, Attempt rebuild? Y
>
> ISAM Error# 10399 DOS#2
> Opening DX file: Error #6002. Press any key...
>
> ISAM Error# 10465 DOS # 0
Ah, that explains where that 10399 error was coming from. The Restruct
unit. But IsamDOSError and IsamDOSFunc need to be checked after the
original 10140 error to determine what the actual error is.
> Anyway, thanks for your help. I will see what happens if he just
> eliminates the SAV file and lets the ordinary rebuild self repair
> take place.
You're welcome. Hopefully that will work...
--Rob [TPX]
Error 10140, Attempt rebuild? Y
ISAM Error# 10399 DOS#2
Opening DX file: Error #6002. Press any key...
ISAM Error# 10465 DOS # 0
So, it seems as though there is some kind of problem with the DX file, BTF
recognizes it, asks if he wants to rebuild, finds the SAV file, reports its
presence, and shuts down because it cant do the rebuild. Whatever the
problem is that causes the 10140 and the 10399 at least I do know what the
10465 is, and what to do about that. I havent heard from the user since I
referred him to the info sheet on my website about how to deal with 10465,
so maybe that fixed it.
The error reporting code is lifted from an OOFiler example. After
filebloc.init does NOT go to ExitPoint, the
InitStatus := epFatal+ecIsamError; and my error reporting technique puts
up a message:
popupmessage( 'ISAM Error# ' + long2str(isamerror) + ' DOS#' +
long2str(isamDosError) +' '
'Opening DX file: Error #' +
long2str(initstatus) );
and then halts. I suspect that the 10465 comes between the first and 2nd
errors because after Press any key, the app halts.
Anyway, thanks for your help. I will see what happens if he just eliminates
the SAV file and lets the ordinary rebuild self repair take place.
(It is fascinating how people trained to be meticulous observers and
reporters of fact become overwhelmed scatterbrains when faced with the
computer, can't report a simple sequence of events step by step even when
they are writing them down!)
Jerry Blumenthal