Alaska Software Inc. - Random Crash on xBase Hybrid.
Username: Password:
AuthorTopic: Random Crash on xBase Hybrid.
MarceloRandom Crash on xBase Hybrid.
on Fri, 29 Sep 2006 16:12:34 -0400
Hi Guys,

    I'm finding this one really strange and its driving me crazy.
    I have a few applications currently deployed with xBase, but one of them 
I'm stuck since I cannot find out what is wrong with it.

    The application randomly crashes (just closes with no error.) When I run 
it in debug mode, i get an Exit Return 5. What does that mean?
    There is no specific place for it to crash, and if I go to the same 
place it crashed before, it wont necessarly crash again.

    I know it must be something really simple i'm not doing but I can't 
figure out what it is.

Anyone with an idea?

Thanks,
Marcelo
MarceloRe: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 16:16:49 -0400
One thing to add. The FATAL.LOG

FATAL ERROR LOG
System-Error
SYS Thread-ID: 500
Module: MOM
Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
Call Stack of Thread 1 (500):
NET_USE(94)
V_OPEN(1319)
OPEN_USE(678)
SECUR_VERIF(865)
INTERMU(235)
PMSMENU(248)
PMS(201)
MAIN(112)
Call Stack of Thread 2 (680):
File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
TimeStamp: 20060929 16:04
End of FATAL ERROR LOG.

I have no clue (besides the callstack) what does that log has. anyone ?


"Marcelo" <mramos@caisoftdesign.ca> wrote in message 
news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
> Hi Guys,
>
>    I'm finding this one really strange and its driving me crazy.
>    I have a few applications currently deployed with xBase, but one of 
> them I'm stuck since I cannot find out what is wrong with it.
>
>    The application randomly crashes (just closes with no error.) When I 
> run it in debug mode, i get an Exit Return 5. What does that mean?
>    There is no specific place for it to crash, and if I go to the same 
> place it crashed before, it wont necessarly crash again.
>
>    I know it must be something really simple i'm not doing but I can't 
> figure out what it is.
>
> Anyone with an idea?
>
> Thanks,
> Marcelo
>
>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 13:25:54 -0700
It appears to be failing after line 94 in your NET_USE() function.  What 
does the code of that function look like?  Does it check for error 
conditions or just try to open a database and potentially cause an erro 
because it assumes that the dbf has been opened and tries to read from it?

IOW, how robust is the error testing/correction within the NET_USE() 
function?

-Joe

Marcelo wrote:
> One thing to add. The FATAL.LOG
> 
> FATAL ERROR LOG
> System-Error
> SYS Thread-ID: 500
> Module: MOM
> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
> Call Stack of Thread 1 (500):
> NET_USE(94)
> V_OPEN(1319)
> OPEN_USE(678)
> SECUR_VERIF(865)
> INTERMU(235)
> PMSMENU(248)
> PMS(201)
> MAIN(112)
> Call Stack of Thread 2 (680):
> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
> TimeStamp: 20060929 16:04
> End of FATAL ERROR LOG.
> 
> I have no clue (besides the callstack) what does that log has. anyone ?
> 
> 
> "Marcelo" <mramos@caisoftdesign.ca> wrote in message 
> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
> 
>>Hi Guys,
>>
>>   I'm finding this one really strange and its driving me crazy.
>>   I have a few applications currently deployed with xBase, but one of 
>>them I'm stuck since I cannot find out what is wrong with it.
>>
>>   The application randomly crashes (just closes with no error.) When I 
>>run it in debug mode, i get an Exit Return 5. What does that mean?
>>   There is no specific place for it to crash, and if I go to the same 
>>place it crashed before, it wont necessarly crash again.
>>
>>   I know it must be something really simple i'm not doing but I can't 
>>figure out what it is.
>>
>>Anyone with an idea?
>>
>>Thanks,
>>Marcelo
>>
>>
> 
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 19:20:09 -0400
Hi Joe,

    the net_use is that very old function created for clipper network opens, 
with very little if any changes at all.
    I will ask you the same question as I did to James (which also answered 
this thread). Shouldn't it give me a message
saying thats a problem with opening the file or something? why does it just 
closes?

Thanks!
Marcelo

"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:7723bda5$66942446$d21ea@news.alaska-software.com...
> It appears to be failing after line 94 in your NET_USE() function.  What 
> does the code of that function look like?  Does it check for error 
> conditions or just try to open a database and potentially cause an erro 
> because it assumes that the dbf has been opened and tries to read from it?
>
> IOW, how robust is the error testing/correction within the NET_USE() 
> function?
>
> -Joe
>
> Marcelo wrote:
>> One thing to add. The FATAL.LOG
>>
>> FATAL ERROR LOG
>> System-Error
>> SYS Thread-ID: 500
>> Module: MOM
>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>> Call Stack of Thread 1 (500):
>> NET_USE(94)
>> V_OPEN(1319)
>> OPEN_USE(678)
>> SECUR_VERIF(865)
>> INTERMU(235)
>> PMSMENU(248)
>> PMS(201)
>> MAIN(112)
>> Call Stack of Thread 2 (680):
>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>> TimeStamp: 20060929 16:04
>> End of FATAL ERROR LOG.
>>
>> I have no clue (besides the callstack) what does that log has. anyone ?
>>
>>
>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message 
>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>
>>>Hi Guys,
>>>
>>>   I'm finding this one really strange and its driving me crazy.
>>>   I have a few applications currently deployed with xBase, but one of 
>>> them I'm stuck since I cannot find out what is wrong with it.
>>>
>>>   The application randomly crashes (just closes with no error.) When I 
>>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>>   There is no specific place for it to crash, and if I go to the same 
>>> place it crashed before, it wont necessarly crash again.
>>>
>>>   I know it must be something really simple i'm not doing but I can't 
>>> figure out what it is.
>>>
>>>Anyone with an idea?
>>>
>>>Thanks,
>>>Marcelo
>>>
>>>
>>
>>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 16:25:21 -0700
Hi Marcelo,

It did give you a message.  As Jim said, it's a DOS Error.  The question 
is: "What caused it?"  If you can show us the code we might be able to 
help - otherwise, there's nothing we can do.

The default Xbase++ ErrorSys() is fairly non-specific but you can modify 
that or you can put in-line checking in your code to check for various 
possible conditions and prevent them from occuring.

-Joe

Marcelo wrote:
> Hi Joe,
> 
>     the net_use is that very old function created for clipper network opens, 
> with very little if any changes at all.
>     I will ask you the same question as I did to James (which also answered 
> this thread). Shouldn't it give me a message
> saying thats a problem with opening the file or something? why does it just 
> closes?
> 
> Thanks!
> Marcelo
> 
> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
> news:7723bda5$66942446$d21ea@news.alaska-software.com...
> 
>>It appears to be failing after line 94 in your NET_USE() function.  What 
>>does the code of that function look like?  Does it check for error 
>>conditions or just try to open a database and potentially cause an erro 
>>because it assumes that the dbf has been opened and tries to read from it?
>>
>>IOW, how robust is the error testing/correction within the NET_USE() 
>>function?
>>
>>-Joe
>>
>>Marcelo wrote:
>>
>>>One thing to add. The FATAL.LOG
>>>
>>>FATAL ERROR LOG
>>>System-Error
>>>SYS Thread-ID: 500
>>>Module: MOM
>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>>Call Stack of Thread 1 (500):
>>>NET_USE(94)
>>>V_OPEN(1319)
>>>OPEN_USE(678)
>>>SECUR_VERIF(865)
>>>INTERMU(235)
>>>PMSMENU(248)
>>>PMS(201)
>>>MAIN(112)
>>>Call Stack of Thread 2 (680):
>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>>TimeStamp: 20060929 16:04
>>>End of FATAL ERROR LOG.
>>>
>>>I have no clue (besides the callstack) what does that log has. anyone ?
>>>
>>>
>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message 
>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>
>>>
>>>>Hi Guys,
>>>>
>>>>  I'm finding this one really strange and its driving me crazy.
>>>>  I have a few applications currently deployed with xBase, but one of 
>>>>them I'm stuck since I cannot find out what is wrong with it.
>>>>
>>>>  The application randomly crashes (just closes with no error.) When I 
>>>>run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>  There is no specific place for it to crash, and if I go to the same 
>>>>place it crashed before, it wont necessarly crash again.
>>>>
>>>>  I know it must be something really simple i'm not doing but I can't 
>>>>figure out what it is.
>>>>
>>>>Anyone with an idea?
>>>>
>>>>Thanks,
>>>>Marcelo
>>>>
>>>>
>>>
>>>
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 09:28:26 -0400
Okay Joe, I posted the entire code on James thread side.

Thanks a lot!
Marcelo

"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:5bc2268b$6d611465$d20ea@news.alaska-software.com...
> Hi Marcelo,
>
> It did give you a message.  As Jim said, it's a DOS Error.  The question 
> is: "What caused it?"  If you can show us the code we might be able to 
> help - otherwise, there's nothing we can do.
>
> The default Xbase++ ErrorSys() is fairly non-specific but you can modify 
> that or you can put in-line checking in your code to check for various 
> possible conditions and prevent them from occuring.
>
> -Joe
>
> Marcelo wrote:
>> Hi Joe,
>>
>>     the net_use is that very old function created for clipper network 
>> opens, with very little if any changes at all.
>>     I will ask you the same question as I did to James (which also 
>> answered this thread). Shouldn't it give me a message
>> saying thats a problem with opening the file or something? why does it 
>> just closes?
>>
>> Thanks!
>> Marcelo
>>
>> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
>> news:7723bda5$66942446$d21ea@news.alaska-software.com...
>>
>>>It appears to be failing after line 94 in your NET_USE() function.  What 
>>>does the code of that function look like?  Does it check for error 
>>>conditions or just try to open a database and potentially cause an erro 
>>>because it assumes that the dbf has been opened and tries to read from 
>>>it?
>>>
>>>IOW, how robust is the error testing/correction within the NET_USE() 
>>>function?
>>>
>>>-Joe
>>>
>>>Marcelo wrote:
>>>
>>>>One thing to add. The FATAL.LOG
>>>>
>>>>FATAL ERROR LOG
>>>>System-Error
>>>>SYS Thread-ID: 500
>>>>Module: MOM
>>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>>>Call Stack of Thread 1 (500):
>>>>NET_USE(94)
>>>>V_OPEN(1319)
>>>>OPEN_USE(678)
>>>>SECUR_VERIF(865)
>>>>INTERMU(235)
>>>>PMSMENU(248)
>>>>PMS(201)
>>>>MAIN(112)
>>>>Call Stack of Thread 2 (680):
>>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>>>TimeStamp: 20060929 16:04
>>>>End of FATAL ERROR LOG.
>>>>
>>>>I have no clue (besides the callstack) what does that log has. anyone ?
>>>>
>>>>
>>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message 
>>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>>
>>>>
>>>>>Hi Guys,
>>>>>
>>>>>  I'm finding this one really strange and its driving me crazy.
>>>>>  I have a few applications currently deployed with xBase, but one of 
>>>>> them I'm stuck since I cannot find out what is wrong with it.
>>>>>
>>>>>  The application randomly crashes (just closes with no error.) When I 
>>>>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>>  There is no specific place for it to crash, and if I go to the same 
>>>>> place it crashed before, it wont necessarly crash again.
>>>>>
>>>>>  I know it must be something really simple i'm not doing but I can't 
>>>>> figure out what it is.
>>>>>
>>>>>Anyone with an idea?
>>>>>
>>>>>Thanks,
>>>>>Marcelo
>>>>>
>>>>>
>>>>
>>>>
>>
James Loughner Re: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 16:28:52 -0400
OS (DOS) error 5 is "access denied" most likely you are trying to open a
locked file shared and not testing net error or other access problems
like lack of rights etc.

Good luck
Jim




Marcelo wrote:
> One thing to add. The FATAL.LOG
> 
> FATAL ERROR LOG
> System-Error
> SYS Thread-ID: 500
> Module: MOM
> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
> Call Stack of Thread 1 (500):
> NET_USE(94)
> V_OPEN(1319)
> OPEN_USE(678)
> SECUR_VERIF(865)
> INTERMU(235)
> PMSMENU(248)
> PMS(201)
> MAIN(112)
> Call Stack of Thread 2 (680):
> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
> TimeStamp: 20060929 16:04
> End of FATAL ERROR LOG.
> 
> I have no clue (besides the callstack) what does that log has. anyone ?
> 
> 
> "Marcelo" <mramos@caisoftdesign.ca> wrote in message 
> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>> Hi Guys,
>>
>>    I'm finding this one really strange and its driving me crazy.
>>    I have a few applications currently deployed with xBase, but one of 
>> them I'm stuck since I cannot find out what is wrong with it.
>>
>>    The application randomly crashes (just closes with no error.) When I 
>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>    There is no specific place for it to crash, and if I go to the same 
>> place it crashed before, it wont necessarly crash again.
>>
>>    I know it must be something really simple i'm not doing but I can't 
>> figure out what it is.
>>
>> Anyone with an idea?
>>
>> Thanks,
>> Marcelo
>>
>>
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 19:17:57 -0400
Hi Joe,

    I will check up on the Access denied problem. But I still have a 
question. WHY it just crashes with no message? Shouldn't it give me an 
message on that case?

Thanks,
Marcelo


"James Loughner" <jwrl@charter.net> wrote in message 
news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com...
> OS (DOS) error 5 is "access denied" most likely you are trying to open a
> locked file shared and not testing net error or other access problems
> like lack of rights etc.
>
> Good luck
> Jim
>
>
>
>
> Marcelo wrote:
>> One thing to add. The FATAL.LOG
>>
>> FATAL ERROR LOG
>> System-Error
>> SYS Thread-ID: 500
>> Module: MOM
>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>> Call Stack of Thread 1 (500):
>> NET_USE(94)
>> V_OPEN(1319)
>> OPEN_USE(678)
>> SECUR_VERIF(865)
>> INTERMU(235)
>> PMSMENU(248)
>> PMS(201)
>> MAIN(112)
>> Call Stack of Thread 2 (680):
>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>> TimeStamp: 20060929 16:04
>> End of FATAL ERROR LOG.
>>
>> I have no clue (besides the callstack) what does that log has. anyone ?
>>
>>
>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message
>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>> Hi Guys,
>>>
>>>    I'm finding this one really strange and its driving me crazy.
>>>    I have a few applications currently deployed with xBase, but one of
>>> them I'm stuck since I cannot find out what is wrong with it.
>>>
>>>    The application randomly crashes (just closes with no error.) When I
>>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>>    There is no specific place for it to crash, and if I go to the same
>>> place it crashed before, it wont necessarly crash again.
>>>
>>>    I know it must be something really simple i'm not doing but I can't
>>> figure out what it is.
>>>
>>> Anyone with an idea?
>>>
>>> Thanks,
>>> Marcelo
>>>
>>>
>>
>>
James Loughner Re: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 23:17:47 -0400
exactly what is line

NET_USE(94)

also some lines around it

Jim

Marcelo wrote:
> Hi Joe,
> 
>     I will check up on the Access denied problem. But I still have a 
> question. WHY it just crashes with no message? Shouldn't it give me an 
> message on that case?
> 
> Thanks,
> Marcelo
> 
> 
> "James Loughner" <jwrl@charter.net> wrote in message 
> news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com...
>> OS (DOS) error 5 is "access denied" most likely you are trying to open a
>> locked file shared and not testing net error or other access problems
>> like lack of rights etc.
>>
>> Good luck
>> Jim
>>
>>
>>
>>
>> Marcelo wrote:
>>> One thing to add. The FATAL.LOG
>>>
>>> FATAL ERROR LOG
>>> System-Error
>>> SYS Thread-ID: 500
>>> Module: MOM
>>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>> Call Stack of Thread 1 (500):
>>> NET_USE(94)
>>> V_OPEN(1319)
>>> OPEN_USE(678)
>>> SECUR_VERIF(865)
>>> INTERMU(235)
>>> PMSMENU(248)
>>> PMS(201)
>>> MAIN(112)
>>> Call Stack of Thread 2 (680):
>>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>> TimeStamp: 20060929 16:04
>>> End of FATAL ERROR LOG.
>>>
>>> I have no clue (besides the callstack) what does that log has. anyone ?
>>>
>>>
>>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message
>>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>> Hi Guys,
>>>>
>>>>    I'm finding this one really strange and its driving me crazy.
>>>>    I have a few applications currently deployed with xBase, but one of
>>>> them I'm stuck since I cannot find out what is wrong with it.
>>>>
>>>>    The application randomly crashes (just closes with no error.) When I
>>>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>    There is no specific place for it to crash, and if I go to the same
>>>> place it crashed before, it wont necessarly crash again.
>>>>
>>>>    I know it must be something really simple i'm not doing but I can't
>>>> figure out what it is.
>>>>
>>>> Anyone with an idea?
>>>>
>>>> Thanks,
>>>> Marcelo
>>>>
>>>>
>>>
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 09:27:51 -0400
Hi Guys,

    Here is my netuse function.

FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
  local forever := (wait = 0)
  local cIndex  := file+indexext()

  cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
  cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
  cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)


  IF !Empty(cLocDbf)
     Set Default To &(cLocDbf)
     CurDir(cLocDbf)
  ENDIF


    DO WHILE (forever .OR. wait > 0)
       IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level)
          IF ex_use                                    && exclusive
             IF empty(ali_nm)
                USE &file EXCLUSIVE
             ELSE
                USE &file EXCLUSIVE alias &ali_nm
             ENDIF
          ELSE                                         && shared
             IF empty(ali_nm)
                USE &file 
<------------------------------------------------------- LINE 94
             ELSE
                USE &file alias &ali_nm
             ENDIF
          ENDIF
          IF File(cIndex)
             set index to &cIndex
          ENDIF
       ELSE
          IF ex_use                                    && exclusive
             IF empty(ali_nm)
                USE &file EXCLUSIVE READONLY
             ELSE
                USE &file EXCLUSIVE READONLY alias &ali_nm
             ENDIF
          ELSE                                         && shared
             IF empty(ali_nm)
                USE &file READONLY
             ELSE
                USE &file READONLY alias &ali_nm
             ENDIF
          ENDIF
       ENDIF

       IF .NOT. NETERR()                            && USE succeeds
          RETURN (.T.)
       ENDIF

       INKEY(1)                                     && wait 1 second
       wait = wait - 1
    ENDDO
RETURN (.F.)                                     && USE fails


I'm not sure why i'm gettin access denied on the opens...

Thanks
Marcelo


"James Loughner" <jwrl@charter.net> wrote in message 
news:1149718$41ee8f98$d2018@news.alaska-software.com...
> exactly what is line
>
> NET_USE(94)
>
> also some lines around it
>
> Jim
>
> Marcelo wrote:
>> Hi Joe,
>>
>>     I will check up on the Access denied problem. But I still have a
>> question. WHY it just crashes with no message? Shouldn't it give me an
>> message on that case?
>>
>> Thanks,
>> Marcelo
>>
>>
>> "James Loughner" <jwrl@charter.net> wrote in message
>> news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com...
>>> OS (DOS) error 5 is "access denied" most likely you are trying to open a
>>> locked file shared and not testing net error or other access problems
>>> like lack of rights etc.
>>>
>>> Good luck
>>> Jim
>>>
>>>
>>>
>>>
>>> Marcelo wrote:
>>>> One thing to add. The FATAL.LOG
>>>>
>>>> FATAL ERROR LOG
>>>> System-Error
>>>> SYS Thread-ID: 500
>>>> Module: MOM
>>>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>>> Call Stack of Thread 1 (500):
>>>> NET_USE(94)
>>>> V_OPEN(1319)
>>>> OPEN_USE(678)
>>>> SECUR_VERIF(865)
>>>> INTERMU(235)
>>>> PMSMENU(248)
>>>> PMS(201)
>>>> MAIN(112)
>>>> Call Stack of Thread 2 (680):
>>>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>>> TimeStamp: 20060929 16:04
>>>> End of FATAL ERROR LOG.
>>>>
>>>> I have no clue (besides the callstack) what does that log has. anyone ?
>>>>
>>>>
>>>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message
>>>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>>> Hi Guys,
>>>>>
>>>>>    I'm finding this one really strange and its driving me crazy.
>>>>>    I have a few applications currently deployed with xBase, but one of
>>>>> them I'm stuck since I cannot find out what is wrong with it.
>>>>>
>>>>>    The application randomly crashes (just closes with no error.) When 
>>>>> I
>>>>> run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>>    There is no specific place for it to crash, and if I go to the same
>>>>> place it crashed before, it wont necessarly crash again.
>>>>>
>>>>>    I know it must be something really simple i'm not doing but I can't
>>>>> figure out what it is.
>>>>>
>>>>> Anyone with an idea?
>>>>>
>>>>> Thanks,
>>>>> Marcelo
>>>>>
>>>>>
>>>>
>>
>>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 07:40:31 -0700
Hi Marcelo,

I do not see any check to see if the file actually exists.

The neterr() function should catch the other conditions, but if the file 
doesn't exist, the use command will fail.  I don't know if this is 
what's happening in your app, but I know that I always check for the 
existence of the file first.

-Joe

Marcelo wrote:
> Hi Guys,
> 
>     Here is my netuse function.
> 
> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>   local forever := (wait = 0)
>   local cIndex  := file+indexext()
> 
>   cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>   cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>   cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
> 
> 
>   IF !Empty(cLocDbf)
>      Set Default To &(cLocDbf)
>      CurDir(cLocDbf)
>   ENDIF
> 
> 
>     DO WHILE (forever .OR. wait > 0)
>        IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level)
>           IF ex_use                                    && exclusive
>              IF empty(ali_nm)
>                 USE &file EXCLUSIVE
>              ELSE
>                 USE &file EXCLUSIVE alias &ali_nm
>              ENDIF
>           ELSE                                         && shared
>              IF empty(ali_nm)
>                 USE &file 
> <------------------------------------------------------- LINE 94
>              ELSE
>                 USE &file alias &ali_nm
>              ENDIF
>           ENDIF
>           IF File(cIndex)
>              set index to &cIndex
>           ENDIF
>        ELSE
>           IF ex_use                                    && exclusive
>              IF empty(ali_nm)
>                 USE &file EXCLUSIVE READONLY
>              ELSE
>                 USE &file EXCLUSIVE READONLY alias &ali_nm
>              ENDIF
>           ELSE                                         && shared
>              IF empty(ali_nm)
>                 USE &file READONLY
>              ELSE
>                 USE &file READONLY alias &ali_nm
>              ENDIF
>           ENDIF
>        ENDIF
> 
>        IF .NOT. NETERR()                            && USE succeeds
>           RETURN (.T.)
>        ENDIF
> 
>        INKEY(1)                                     && wait 1 second
>        wait = wait - 1
>     ENDDO
> RETURN (.F.)                                     && USE fails
> 
> 
> I'm not sure why i'm gettin access denied on the opens...
> 
> Thanks
> Marcelo
> 
> 
> "James Loughner" <jwrl@charter.net> wrote in message 
> news:1149718$41ee8f98$d2018@news.alaska-software.com...
> 
>>exactly what is line
>>
>>NET_USE(94)
>>
>>also some lines around it
>>
>>Jim
>>
>>Marcelo wrote:
>>
>>>Hi Joe,
>>>
>>>    I will check up on the Access denied problem. But I still have a
>>>question. WHY it just crashes with no message? Shouldn't it give me an
>>>message on that case?
>>>
>>>Thanks,
>>>Marcelo
>>>
>>>
>>>"James Loughner" <jwrl@charter.net> wrote in message
>>>news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com...
>>>
>>>>OS (DOS) error 5 is "access denied" most likely you are trying to open a
>>>>locked file shared and not testing net error or other access problems
>>>>like lack of rights etc.
>>>>
>>>>Good luck
>>>>Jim
>>>>
>>>>
>>>>
>>>>
>>>>Marcelo wrote:
>>>>
>>>>>One thing to add. The FATAL.LOG
>>>>>
>>>>>FATAL ERROR LOG
>>>>>System-Error
>>>>>SYS Thread-ID: 500
>>>>>Module: MOM
>>>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>>>>Call Stack of Thread 1 (500):
>>>>>NET_USE(94)
>>>>>V_OPEN(1319)
>>>>>OPEN_USE(678)
>>>>>SECUR_VERIF(865)
>>>>>INTERMU(235)
>>>>>PMSMENU(248)
>>>>>PMS(201)
>>>>>MAIN(112)
>>>>>Call Stack of Thread 2 (680):
>>>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>>>>TimeStamp: 20060929 16:04
>>>>>End of FATAL ERROR LOG.
>>>>>
>>>>>I have no clue (besides the callstack) what does that log has. anyone ?
>>>>>
>>>>>
>>>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message
>>>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>>>
>>>>>>Hi Guys,
>>>>>>
>>>>>>   I'm finding this one really strange and its driving me crazy.
>>>>>>   I have a few applications currently deployed with xBase, but one of
>>>>>>them I'm stuck since I cannot find out what is wrong with it.
>>>>>>
>>>>>>   The application randomly crashes (just closes with no error.) When 
>>>>>>I
>>>>>>run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>>>   There is no specific place for it to crash, and if I go to the same
>>>>>>place it crashed before, it wont necessarly crash again.
>>>>>>
>>>>>>   I know it must be something really simple i'm not doing but I can't
>>>>>>figure out what it is.
>>>>>>
>>>>>>Anyone with an idea?
>>>>>>
>>>>>>Thanks,
>>>>>>Marcelo
>>>>>>
>>>>>>
>>>>>
>>>
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 11:44:11 -0400
Hi Joe,

    Yes indeed, I do not check if the file actually exists, but the files 
that this net_uses opens are always the same.
    Maybe this problem will become clearer after you check the message I 
left on the thread for James.
    I finnaly found a pattern how to reproduce and based on my pattern I 
think the "file not found" can be discarded
from the possible list?
    Well anyways take a look at the full explanation on James side of the 
thread.

Thanks,
Marcelo


"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:6fbdc8ae$56a7f5e9$fcdbc@news.alaska-software.com...
> Hi Marcelo,
>
> I do not see any check to see if the file actually exists.
>
> The neterr() function should catch the other conditions, but if the file 
> doesn't exist, the use command will fail.  I don't know if this is what's 
> happening in your app, but I know that I always check for the existence of 
> the file first.
>
> -Joe
>
> Marcelo wrote:
>> Hi Guys,
>>
>>     Here is my netuse function.
>>
>> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>>   local forever := (wait = 0)
>>   local cIndex  := file+indexext()
>>
>>   cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>>   cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>>   cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
>>
>>
>>   IF !Empty(cLocDbf)
>>      Set Default To &(cLocDbf)
>>      CurDir(cLocDbf)
>>   ENDIF
>>
>>
>>     DO WHILE (forever .OR. wait > 0)
>>        IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level)
>>           IF ex_use                                    && exclusive
>>              IF empty(ali_nm)
>>                 USE &file EXCLUSIVE
>>              ELSE
>>                 USE &file EXCLUSIVE alias &ali_nm
>>              ENDIF
>>           ELSE                                         && shared
>>              IF empty(ali_nm)
>>                 USE &file 
>> <------------------------------------------------------- LINE 94
>>              ELSE
>>                 USE &file alias &ali_nm
>>              ENDIF
>>           ENDIF
>>           IF File(cIndex)
>>              set index to &cIndex
>>           ENDIF
>>        ELSE
>>           IF ex_use                                    && exclusive
>>              IF empty(ali_nm)
>>                 USE &file EXCLUSIVE READONLY
>>              ELSE
>>                 USE &file EXCLUSIVE READONLY alias &ali_nm
>>              ENDIF
>>           ELSE                                         && shared
>>              IF empty(ali_nm)
>>                 USE &file READONLY
>>              ELSE
>>                 USE &file READONLY alias &ali_nm
>>              ENDIF
>>           ENDIF
>>        ENDIF
>>
>>        IF .NOT. NETERR()                            && USE succeeds
>>           RETURN (.T.)
>>        ENDIF
>>
>>        INKEY(1)                                     && wait 1 second
>>        wait = wait - 1
>>     ENDDO
>> RETURN (.F.)                                     && USE fails
>>
>>
>> I'm not sure why i'm gettin access denied on the opens...
>>
>> Thanks
>> Marcelo
>>
>>
>> "James Loughner" <jwrl@charter.net> wrote in message 
>> news:1149718$41ee8f98$d2018@news.alaska-software.com...
>>
>>>exactly what is line
>>>
>>>NET_USE(94)
>>>
>>>also some lines around it
>>>
>>>Jim
>>>
>>>Marcelo wrote:
>>>
>>>>Hi Joe,
>>>>
>>>>    I will check up on the Access denied problem. But I still have a
>>>>question. WHY it just crashes with no message? Shouldn't it give me an
>>>>message on that case?
>>>>
>>>>Thanks,
>>>>Marcelo
>>>>
>>>>
>>>>"James Loughner" <jwrl@charter.net> wrote in message
>>>>news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com...
>>>>
>>>>>OS (DOS) error 5 is "access denied" most likely you are trying to open 
>>>>>a
>>>>>locked file shared and not testing net error or other access problems
>>>>>like lack of rights etc.
>>>>>
>>>>>Good luck
>>>>>Jim
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>Marcelo wrote:
>>>>>
>>>>>>One thing to add. The FATAL.LOG
>>>>>>
>>>>>>FATAL ERROR LOG
>>>>>>System-Error
>>>>>>SYS Thread-ID: 500
>>>>>>Module: MOM
>>>>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40
>>>>>>Call Stack of Thread 1 (500):
>>>>>>NET_USE(94)
>>>>>>V_OPEN(1319)
>>>>>>OPEN_USE(678)
>>>>>>SECUR_VERIF(865)
>>>>>>INTERMU(235)
>>>>>>PMSMENU(248)
>>>>>>PMS(201)
>>>>>>MAIN(112)
>>>>>>Call Stack of Thread 2 (680):
>>>>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe
>>>>>>TimeStamp: 20060929 16:04
>>>>>>End of FATAL ERROR LOG.
>>>>>>
>>>>>>I have no clue (besides the callstack) what does that log has. anyone 
>>>>>>?
>>>>>>
>>>>>>
>>>>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message
>>>>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com...
>>>>>>
>>>>>>>Hi Guys,
>>>>>>>
>>>>>>>   I'm finding this one really strange and its driving me crazy.
>>>>>>>   I have a few applications currently deployed with xBase, but one 
>>>>>>> of
>>>>>>>them I'm stuck since I cannot find out what is wrong with it.
>>>>>>>
>>>>>>>   The application randomly crashes (just closes with no error.) When 
>>>>>>> I
>>>>>>>run it in debug mode, i get an Exit Return 5. What does that mean?
>>>>>>>   There is no specific place for it to crash, and if I go to the 
>>>>>>> same
>>>>>>>place it crashed before, it wont necessarly crash again.
>>>>>>>
>>>>>>>   I know it must be something really simple i'm not doing but I 
>>>>>>> can't
>>>>>>>figure out what it is.
>>>>>>>
>>>>>>>Anyone with an idea?
>>>>>>>
>>>>>>>Thanks,
>>>>>>>Marcelo
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>
AUGE_OHRRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 22:36:39 +0200
hi,

>  USE &file

i did have look into my "Net_Use" to remember that there is a diffence in
Xbase++ / Cl*pper :

*** snip ***
      IF FILE(file_dbf)                       does files exist
         DO WHILE  m_dauer> 0      timeout
            IF ex_use                           Exclusive
               #IFDEF __XPP__          Xbase++
                  IF lNewAlias
                     USE (file_dbf) EXCLUSIVE ALIAS (myalias)
                  ELSE
                     USE (file_dbf) EXCLUSIVE
                  ENDIF
               #ELSE                            Cl*pper
                  IF lNewAlias
                     USE &file_dbf EXCLUSIVE ALIAS &myalias
                  ELSE
                     USE &file_dbf EXCLUSIVE
                  ENDIF
               #ENDIF
            ELSE                                  shared
               #IFDEF __XPP__           Xbase++
                  IF lNewAlias
                     USE (file_dbf) ALIAS (myalias)
                  ELSE
                     USE (file_dbf)
                  ENDIF
               #ELSE                              Cl*pper
                  IF lNewAlias
                     USE &file_dbf ALIAS &myalias
                  ELSE
                     USE &file_dbf
                  ENDIF
               #ENDIF
            ENDIF
            IF .NOT. NETERR()         Error open DBF ?

*** eof ***

>       IF File(cIndex)
>          DBSETINDEX(cIndex)
>       ENDIF
>
>       IF .NOT. NETERR()                            && USE succeeds

you shoud test NetErr() BEFORE setting Index

>  recover using objLocal
>    MsgBox( objLocal:description )

is objLocal:description valid ?

i woud recommend asking :osCode :

*** snip 
RECOVER USING oError
      If oError:osCode#0

*** eof ***

greetings by OHR
Jimmy
James Loughner Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 17:10:54 -0400
Right you can't use a macro on a local variable. Basically it is not
visible to the internal compiler. You can only use a macro on a string (
like defining a codeblock) or Public/Private variables. Should have seen
that earlier but I have abandoned USE statements for DBUseArea in most
of my code.

Jim

AUGE_OHR wrote:
> hi,
> 
>>  USE &file
> 
> i did have look into my "Net_Use" to remember that there is a diffence in
> Xbase++ / Cl*pper :
> 
> *** snip ***
>       IF FILE(file_dbf)                       does files exist
>          DO WHILE  m_dauer> 0      timeout
>             IF ex_use                           Exclusive
>                #IFDEF __XPP__          Xbase++
>                   IF lNewAlias
>                      USE (file_dbf) EXCLUSIVE ALIAS (myalias)
>                   ELSE
>                      USE (file_dbf) EXCLUSIVE
>                   ENDIF
>                #ELSE                            Cl*pper
>                   IF lNewAlias
>                      USE &file_dbf EXCLUSIVE ALIAS &myalias
>                   ELSE
>                      USE &file_dbf EXCLUSIVE
>                   ENDIF
>                #ENDIF
>             ELSE                                  shared
>                #IFDEF __XPP__           Xbase++
>                   IF lNewAlias
>                      USE (file_dbf) ALIAS (myalias)
>                   ELSE
>                      USE (file_dbf)
>                   ENDIF
>                #ELSE                              Cl*pper
>                   IF lNewAlias
>                      USE &file_dbf ALIAS &myalias
>                   ELSE
>                      USE &file_dbf
>                   ENDIF
>                #ENDIF
>             ENDIF
>             IF .NOT. NETERR()         Error open DBF ?
> 
> *** eof ***
> 
>>       IF File(cIndex)
>>          DBSETINDEX(cIndex)
>>       ENDIF
>>
>>       IF .NOT. NETERR()                            && USE succeeds
> 
> you shoud test NetErr() BEFORE setting Index
> 
>>  recover using objLocal
>>    MsgBox( objLocal:description )
> 
> is objLocal:description valid ?
> 
> i woud recommend asking :osCode :
> 
> *** snip 
> RECOVER USING oError
>       If oError:osCode#0
> 
> *** eof ***
> 
> greetings by OHR
> Jimmy
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 09:14:55 -0400
Hi James, and Jimmy

    I have changed my code  to use the DBUseArea as you can see on my 
earlier emails with no luck.
    The portion of the RECOVER on my code never gets fired at all. The 
NETERR never happens aswell.

"James Loughner" <jwrl@charter.net> wrote in message 
news:5e57d1be$3ae597d0$1055d5@news.alaska-software.com...
> Right you can't use a macro on a local variable. Basically it is not
> visible to the internal compiler. You can only use a macro on a string (
> like defining a codeblock) or Public/Private variables. Should have seen
> that earlier but I have abandoned USE statements for DBUseArea in most
> of my code.
>
> Jim
>
> AUGE_OHR wrote:
>> hi,
>>
>>>  USE &file
>>
>> i did have look into my "Net_Use" to remember that there is a diffence in
>> Xbase++ / Cl*pper :
>>
>> *** snip ***
>>       IF FILE(file_dbf)                       does files exist
>>          DO WHILE  m_dauer> 0      timeout
>>             IF ex_use                           Exclusive
>>                #IFDEF __XPP__          Xbase++
>>                   IF lNewAlias
>>                      USE (file_dbf) EXCLUSIVE ALIAS (myalias)
>>                   ELSE
>>                      USE (file_dbf) EXCLUSIVE
>>                   ENDIF
>>                #ELSE                            Cl*pper
>>                   IF lNewAlias
>>                      USE &file_dbf EXCLUSIVE ALIAS &myalias
>>                   ELSE
>>                      USE &file_dbf EXCLUSIVE
>>                   ENDIF
>>                #ENDIF
>>             ELSE                                  shared
>>                #IFDEF __XPP__           Xbase++
>>                   IF lNewAlias
>>                      USE (file_dbf) ALIAS (myalias)
>>                   ELSE
>>                      USE (file_dbf)
>>                   ENDIF
>>                #ELSE                              Cl*pper
>>                   IF lNewAlias
>>                      USE &file_dbf ALIAS &myalias
>>                   ELSE
>>                      USE &file_dbf
>>                   ENDIF
>>                #ENDIF
>>             ENDIF
>>             IF .NOT. NETERR()         Error open DBF ?
>>
>> *** eof ***
>>
>>>       IF File(cIndex)
>>>          DBSETINDEX(cIndex)
>>>       ENDIF
>>>
>>>       IF .NOT. NETERR()                            && USE succeeds
>>
>> you shoud test NetErr() BEFORE setting Index
>>
>>>  recover using objLocal
>>>    MsgBox( objLocal:description )
>>
>> is objLocal:description valid ?
>>
>> i woud recommend asking :osCode :
>>
>> *** snip 
>> RECOVER USING oError
>>       If oError:osCode#0
>>
>> *** eof ***
>>
>> greetings by OHR
>> Jimmy
>>
>>
Eric BreddamRe: Random Crash on xBase Hybrid.
on Fri, 29 Sep 2006 17:15:49 -0700
>     There is no specific place for it to crash, and if I go to the same
> place it crashed before, it wont necessarly crash again.
>
>     I know it must be something really simple i'm not doing but I can't
> figure out what it is.
>
> Anyone with an idea?
>

Do you get the exact same fatal error log every single time?
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 09:29:12 -0400
Yes Eric, I do. Same place every time. But from random locations, as 
explained before.

Thanks
Marcelo

"Eric Breddam" <eric@somdata.com> wrote in message 
news:55bf645a$5248fd1b$d20d4@news.alaska-software.com...
>>     There is no specific place for it to crash, and if I go to the same
>> place it crashed before, it wont necessarly crash again.
>>
>>     I know it must be something really simple i'm not doing but I can't
>> figure out what it is.
>>
>> Anyone with an idea?
>>
>
> Do you get the exact same fatal error log every single time?
>
>
Martin AltmannRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 12:05:44 +0200
Marcelo,
are you using filters?
A friend of one of the German usergroups had the very same errors appearing 
randomly.
It turned out to be due to the use of the set filter using a Boolean field.
He used
      set filter to ! db->bfield
with bfield being a field of type "L".
He found out that the field is not being initialised with .f. and therefore 
the filter crashed when there was such an uninitialised (NIL) field.
After changing the filter to
      set filter to db->bfield # .t.
everything worked - no more crashes!

Regards,
Martin

______________________________

Deutschsprachiges Xbase-Forum:
http://www.xbaseforum.de/
______________________________
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 09:31:39 -0400
Hum... I actually do Martin, but it has no boolean fields, instead it is a 4 
char field (actually up to 6 fields) on them... But
You idea seem to be pretty much possible, since the other apps I have on 
xBase do NOT have a filter and they work just fine.

Thanks for the idea. I'll do some testings with it.
In the meantime, you can see my entire NET_USE function (where the error 
happens) in case you curious to see whats in there.

Thanks
Marcelo


"Martin Altmann" <Altmann@altem.de> wrote in message 
news:40be83e8$4c8e48$ec388@news.alaska-software.com...
> Marcelo,
> are you using filters?
> A friend of one of the German usergroups had the very same errors 
> appearing randomly.
> It turned out to be due to the use of the set filter using a Boolean 
> field.
> He used
>      set filter to ! db->bfield
> with bfield being a field of type "L".
> He found out that the field is not being initialised with .f. and 
> therefore the filter crashed when there was such an uninitialised (NIL) 
> field.
> After changing the filter to
>      set filter to db->bfield # .t.
> everything worked - no more crashes!
>
> Regards,
> Martin
>
> -- 
> ______________________________
>
> Deutschsprachiges Xbase-Forum:
> http://www.xbaseforum.de/
> ______________________________
>
James Loughner Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 10:57:59 -0400
Are you using a file dialog to select a file any place?? As a side
effect it will change the default directory!!!

Jim

Marcelo wrote:
> Hum... I actually do Martin, but it has no boolean fields, instead it is a 4 
> char field (actually up to 6 fields) on them... But
> You idea seem to be pretty much possible, since the other apps I have on 
> xBase do NOT have a filter and they work just fine.
> 
> Thanks for the idea. I'll do some testings with it.
> In the meantime, you can see my entire NET_USE function (where the error 
> happens) in case you curious to see whats in there.
> 
> Thanks
> Marcelo
> 
> 
> "Martin Altmann" <Altmann@altem.de> wrote in message 
> news:40be83e8$4c8e48$ec388@news.alaska-software.com...
>> Marcelo,
>> are you using filters?
>> A friend of one of the German usergroups had the very same errors 
>> appearing randomly.
>> It turned out to be due to the use of the set filter using a Boolean 
>> field.
>> He used
>>      set filter to ! db->bfield
>> with bfield being a field of type "L".
>> He found out that the field is not being initialised with .f. and 
>> therefore the filter crashed when there was such an uninitialised (NIL) 
>> field.
>> After changing the filter to
>>      set filter to db->bfield # .t.
>> everything worked - no more crashes!
>>
>> Regards,
>> Martin
>>
>> -- 
>> ______________________________
>>
>> Deutschsprachiges Xbase-Forum:
>> http://www.xbaseforum.de/
>> ______________________________
>>
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 11:44:09 -0400
No Fileboxes James.

    I have some news tho.. I added a begin sequence on my net use. as the 
following

***
         bLastHandler := ERRORBLOCK({ |e| break(e) })
         begin sequence
IF !Empty(cLocD ....
...wait = wait - 1
    ENDDO
         recover using objLocal
            //send messages to objLocal and handle the error
            IF objLocal:genCode != 0
               MsgBox( objLocal:description )
            ENDIF

         end
         ERRORBLOCK(bLastHandler)
***

    And tried to run it on the Visual xBase ++ debugger. then I found a 
pattern how to reproduce the problem:

1.    Open and close the tables many times. (by going back and forth on many 
or the same screen.) (about 30 times)
2.    Then, go to any other window you have open (Outlook, word, MSN, 
etc..)..
3.    Go back to the xBase application and try to go back to a menu option 
that opens a table.
4.     The program will crash without executing the recover portion.

        NOTE: The first time it happened, the debugger gave me an "boxed" 
error message saying that the debugger had
crashed with an error at that point I didn't take a screen shot, cause I 
wanted to know if I could reproduce the same
problem again.
    From the top of my head I remember some of the error descriptions shown 
on the debugger error detail.

    Error: "Parameter Of wrong type"
    Parameter: <U of (dont remember the second portion)> [2]

    does that say anything?

Let me know if you need more details on this.

Thanks a lot guys!
Marcelo.



"James Loughner" <jwrl@charter.net> wrote in message 
news:2b37e313$d270176$fcd01@news.alaska-software.com...
> Are you using a file dialog to select a file any place?? As a side
> effect it will change the default directory!!!
>
> Jim
>
> Marcelo wrote:
>> Hum... I actually do Martin, but it has no boolean fields, instead it is 
>> a 4
>> char field (actually up to 6 fields) on them... But
>> You idea seem to be pretty much possible, since the other apps I have on
>> xBase do NOT have a filter and they work just fine.
>>
>> Thanks for the idea. I'll do some testings with it.
>> In the meantime, you can see my entire NET_USE function (where the error
>> happens) in case you curious to see whats in there.
>>
>> Thanks
>> Marcelo
>>
>>
>> "Martin Altmann" <Altmann@altem.de> wrote in message
>> news:40be83e8$4c8e48$ec388@news.alaska-software.com...
>>> Marcelo,
>>> are you using filters?
>>> A friend of one of the German usergroups had the very same errors
>>> appearing randomly.
>>> It turned out to be due to the use of the set filter using a Boolean
>>> field.
>>> He used
>>>      set filter to ! db->bfield
>>> with bfield being a field of type "L".
>>> He found out that the field is not being initialised with .f. and
>>> therefore the filter crashed when there was such an uninitialised (NIL)
>>> field.
>>> After changing the filter to
>>>      set filter to db->bfield # .t.
>>> everything worked - no more crashes!
>>>
>>> Regards,
>>> Martin
>>>
>>> -- 
>>> ______________________________
>>>
>>> Deutschsprachiges Xbase-Forum:
>>> http://www.xbaseforum.de/
>>> ______________________________
>>>
>>
>>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 08:59:18 -0700
Does the filename include the complete path and extension?  You might in 
fact be encountering a "file not found" error if the default directory 
has been changed due to use of another application.

-Joe

Marcelo wrote:
> No Fileboxes James.
> 
>     I have some news tho.. I added a begin sequence on my net use. as the 
> following
> 
> ***
>          bLastHandler := ERRORBLOCK({ |e| break(e) })
>          begin sequence
> IF !Empty(cLocD ....
> ...wait = wait - 1
>     ENDDO
>          recover using objLocal
>             //send messages to objLocal and handle the error
>             IF objLocal:genCode != 0
>                MsgBox( objLocal:description )
>             ENDIF
> 
>          end
>          ERRORBLOCK(bLastHandler)
> ***
> 
>     And tried to run it on the Visual xBase ++ debugger. then I found a 
> pattern how to reproduce the problem:
> 
> 1.    Open and close the tables many times. (by going back and forth on many 
> or the same screen.) (about 30 times)
> 2.    Then, go to any other window you have open (Outlook, word, MSN, 
> etc..)..
> 3.    Go back to the xBase application and try to go back to a menu option 
> that opens a table.
> 4.     The program will crash without executing the recover portion.
> 
>         NOTE: The first time it happened, the debugger gave me an "boxed" 
> error message saying that the debugger had
> crashed with an error at that point I didn't take a screen shot, cause I 
> wanted to know if I could reproduce the same
> problem again.
>     From the top of my head I remember some of the error descriptions shown 
> on the debugger error detail.
> 
>     Error: "Parameter Of wrong type"
>     Parameter: <U of (dont remember the second portion)> [2]
> 
>     does that say anything?
> 
> Let me know if you need more details on this.
> 
> Thanks a lot guys!
> Marcelo.
> 
> 
> 
> "James Loughner" <jwrl@charter.net> wrote in message 
> news:2b37e313$d270176$fcd01@news.alaska-software.com...
> 
>>Are you using a file dialog to select a file any place?? As a side
>>effect it will change the default directory!!!
>>
>>Jim
>>
>>Marcelo wrote:
>>
>>>Hum... I actually do Martin, but it has no boolean fields, instead it is 
>>>a 4
>>>char field (actually up to 6 fields) on them... But
>>>You idea seem to be pretty much possible, since the other apps I have on
>>>xBase do NOT have a filter and they work just fine.
>>>
>>>Thanks for the idea. I'll do some testings with it.
>>>In the meantime, you can see my entire NET_USE function (where the error
>>>happens) in case you curious to see whats in there.
>>>
>>>Thanks
>>>Marcelo
>>>
>>>
>>>"Martin Altmann" <Altmann@altem.de> wrote in message
>>>news:40be83e8$4c8e48$ec388@news.alaska-software.com...
>>>
>>>>Marcelo,
>>>>are you using filters?
>>>>A friend of one of the German usergroups had the very same errors
>>>>appearing randomly.
>>>>It turned out to be due to the use of the set filter using a Boolean
>>>>field.
>>>>He used
>>>>     set filter to ! db->bfield
>>>>with bfield being a field of type "L".
>>>>He found out that the field is not being initialised with .f. and
>>>>therefore the filter crashed when there was such an uninitialised (NIL)
>>>>field.
>>>>After changing the filter to
>>>>     set filter to db->bfield # .t.
>>>>everything worked - no more crashes!
>>>>
>>>>Regards,
>>>>Martin
>>>>
>>>>-- 
>>>>______________________________
>>>>
>>>>Deutschsprachiges Xbase-Forum:
>>>>http://www.xbaseforum.de/
>>>>______________________________
>>>>
>>>
>>>
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 13:47:01 -0400
No the variable "file" does not contain the full path.
I change the current path on the top of the net_use. So the "file" variable 
has only the filename
to be opened.
I'm going to by trying for a file not found just to make sure that this is 
the problem. and will post you guys back on it. so we can make sure that is 
is checked.

Thanks,
Marcelo



"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:40279098$3911caf8$fd2b4@news.alaska-software.com...
> Does the filename include the complete path and extension?  You might in 
> fact be encountering a "file not found" error if the default directory has 
> been changed due to use of another application.
>
> -Joe
>
> Marcelo wrote:
>> No Fileboxes James.
>>
>>     I have some news tho.. I added a begin sequence on my net use. as the 
>> following
>>
>> ***
>>          bLastHandler := ERRORBLOCK({ |e| break(e) })
>>          begin sequence
>> IF !Empty(cLocD ....
>> ...wait = wait - 1
>>     ENDDO
>>          recover using objLocal
>>             //send messages to objLocal and handle the error
>>             IF objLocal:genCode != 0
>>                MsgBox( objLocal:description )
>>             ENDIF
>>
>>          end
>>          ERRORBLOCK(bLastHandler)
>> ***
>>
>>     And tried to run it on the Visual xBase ++ debugger. then I found a 
>> pattern how to reproduce the problem:
>>
>> 1.    Open and close the tables many times. (by going back and forth on 
>> many or the same screen.) (about 30 times)
>> 2.    Then, go to any other window you have open (Outlook, word, MSN, 
>> etc..)..
>> 3.    Go back to the xBase application and try to go back to a menu 
>> option that opens a table.
>> 4.     The program will crash without executing the recover portion.
>>
>>         NOTE: The first time it happened, the debugger gave me an "boxed" 
>> error message saying that the debugger had
>> crashed with an error at that point I didn't take a screen shot, cause I 
>> wanted to know if I could reproduce the same
>> problem again.
>>     From the top of my head I remember some of the error descriptions 
>> shown on the debugger error detail.
>>
>>     Error: "Parameter Of wrong type"
>>     Parameter: <U of (dont remember the second portion)> [2]
>>
>>     does that say anything?
>>
>> Let me know if you need more details on this.
>>
>> Thanks a lot guys!
>> Marcelo.
>>
>>
>>
>> "James Loughner" <jwrl@charter.net> wrote in message 
>> news:2b37e313$d270176$fcd01@news.alaska-software.com...
>>
>>>Are you using a file dialog to select a file any place?? As a side
>>>effect it will change the default directory!!!
>>>
>>>Jim
>>>
>>>Marcelo wrote:
>>>
>>>>Hum... I actually do Martin, but it has no boolean fields, instead it is 
>>>>a 4
>>>>char field (actually up to 6 fields) on them... But
>>>>You idea seem to be pretty much possible, since the other apps I have on
>>>>xBase do NOT have a filter and they work just fine.
>>>>
>>>>Thanks for the idea. I'll do some testings with it.
>>>>In the meantime, you can see my entire NET_USE function (where the error
>>>>happens) in case you curious to see whats in there.
>>>>
>>>>Thanks
>>>>Marcelo
>>>>
>>>>
>>>>"Martin Altmann" <Altmann@altem.de> wrote in message
>>>>news:40be83e8$4c8e48$ec388@news.alaska-software.com...
>>>>
>>>>>Marcelo,
>>>>>are you using filters?
>>>>>A friend of one of the German usergroups had the very same errors
>>>>>appearing randomly.
>>>>>It turned out to be due to the use of the set filter using a Boolean
>>>>>field.
>>>>>He used
>>>>>     set filter to ! db->bfield
>>>>>with bfield being a field of type "L".
>>>>>He found out that the field is not being initialised with .f. and
>>>>>therefore the filter crashed when there was such an uninitialised (NIL)
>>>>>field.
>>>>>After changing the filter to
>>>>>     set filter to db->bfield # .t.
>>>>>everything worked - no more crashes!
>>>>>
>>>>>Regards,
>>>>>Martin
>>>>>
>>>>>-- 
>>>>>______________________________
>>>>>
>>>>>Deutschsprachiges Xbase-Forum:
>>>>>http://www.xbaseforum.de/
>>>>>______________________________
>>>>>
>>>>
>>>>
>>
AUGE_OHRRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 18:13:54 +0200
hi,

> NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
...
>       IF empty(ali_nm)
>           USE &file

are you shure that fexist(file) at that time ? is &file local or network ?
why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ?

> 1.    Open and close the tables many times. (by going back and forth on
many
> or the same screen.) (about 30 times)

did you use :

   SET RUSHMORE ON/OFF
   SET SMARTFILTER ONOFF
   SET OPTIMIZE ON/OFF

did you use your own DbeSys.PRG ?

greetings by OHR
Jimmy
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 13:39:58 -0400
Hi Jimmy,

    I cannot say at this point that i'm sure that the fexist(file) at that
time, but i will put that in to the
code just to try. It should exist since i'm calling the same open files at
all times and the cLocDbf comes from location file which has the location
for each file i use. Also I "set default to" and curdir()
to those locations.
    Yes, &file is on the network.
    No, I do not use a modified version of ErrorSys.prg.
    No, I do not use SET RUSHMORE, SET SMARTFILTER or SET OPTIMIZE options
at all.
    No, I do not have my own DbeSys.prg. I use ADSDBE to connect to all
dbfs.

Any other ideas?
Thanks!
Marcelo



"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message
news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
> hi,
>
>> NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
> ...
>>       IF empty(ali_nm)
>>           USE &file
>
> are you shure that fexist(file) at that time ? is &file local or network ?
> why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ?
>
>> 1.    Open and close the tables many times. (by going back and forth on
> many
>> or the same screen.) (about 30 times)
>
> did you use :
>
>   SET RUSHMORE ON/OFF
>   SET SMARTFILTER ONOFF
>   SET OPTIMIZE ON/OFF
>
> did you use your own DbeSys.PRG ?
>
> greetings by OHR
> Jimmy
>
>
>
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 13:57:05 -0400
Okay. So the results for the "FILE NOT FOUND" theory is:
False.

The FExists(file) always return TRUE, and even so the program still crashes.

I added the following piece of code to check for the file:
              if FExists(file+".dbf")
                   USE &file
              else
                   MsgBox("Not found!!!")
              endif

It still crashes on the same site, and with the same fatalerror (now with 
the new line numbers of course).

Any other ideas?

Thanks!
Marcelo


"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message 
news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
> hi,
>
>> NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
> ...
>>       IF empty(ali_nm)
>>           USE &file
>
> are you shure that fexist(file) at that time ? is &file local or network ?
> why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ?
>
>> 1.    Open and close the tables many times. (by going back and forth on
> many
>> or the same screen.) (about 30 times)
>
> did you use :
>
>   SET RUSHMORE ON/OFF
>   SET SMARTFILTER ONOFF
>   SET OPTIMIZE ON/OFF
>
> did you use your own DbeSys.PRG ?
>
> greetings by OHR
> Jimmy
>
>
>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 11:30:48 -0700
Marcelo wrote:
> Okay. So the results for the "FILE NOT FOUND" theory is:
> False.
> 
> The FExists(file) always return TRUE, and even so the program still crashes.
> 
> I added the following piece of code to check for the file:
>               if FExists(file+".dbf")
>                    USE &file
>               else
>                    MsgBox("Not found!!!")
>               endif
> 
> It still crashes on the same site, and with the same fatalerror (now with 
> the new line numbers of course).
> 
> Any other ideas?
> 
> Thanks!
> Marcelo
> 
> 

Try the FOpen() function instead of USE.  This will give you a return 
code which might explain what's happening.  If this succeeds, then you 
will need to FClose() the file (check the calling sequences for both of 
these functions) before attempting to "USE" it.

I assume that the line where the error occurs is:

USE &file

Note that placing certain things in a prg before your function might 
actually report an incorrect line number when an error occurs.

-Joe
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 15:14:54 -0400
Hi Joe,

    I tried the FOpen() FClose().I added the following code to my net_use:

          nFilehandle = FOpen(file+".dbf",FO_READWRITE)
          IF FError() = 0
             If FClose(nFilehandle)
                DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) 
//Open table w/ all modes already pre-set
             Else
                MsgBox("error closing")
             EndIf
          Else
             MsgBox("error opening: "+Str(Ferror()))
          ENdIF

    The same problem happened, no error from FOpen or Close.

    The error line is indeed hte "USE &file" and I know that it's the 
correct line being reported, since
I changed the entire function (as you can see on my previous message) and 
the error still occurs (but
on the DBUsearea )...


Thanks for the try!
Marcelo

"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:1523eb03$7535c1b3$100641@news.alaska-software.com...
> Marcelo wrote:
>> Okay. So the results for the "FILE NOT FOUND" theory is:
>> False.
>>
>> The FExists(file) always return TRUE, and even so the program still 
>> crashes.
>>
>> I added the following piece of code to check for the file:
>>               if FExists(file+".dbf")
>>                    USE &file
>>               else
>>                    MsgBox("Not found!!!")
>>               endif
>>
>> It still crashes on the same site, and with the same fatalerror (now with 
>> the new line numbers of course).
>>
>> Any other ideas?
>>
>> Thanks!
>> Marcelo
>>
>>
>
> Try the FOpen() function instead of USE.  This will give you a return code 
> which might explain what's happening.  If this succeeds, then you will 
> need to FClose() the file (check the calling sequences for both of these 
> functions) before attempting to "USE" it.
>
> I assume that the line where the error occurs is:
>
> USE &file
>
> Note that placing certain things in a prg before your function might 
> actually report an incorrect line number when an error occurs.
>
> -Joe
MarceloRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 14:24:25 -0400
Okay I re-wrote the NET_USE file so it would have valid values all the time, 
so we dont need to
worry about something is not initialized or a file is not there:


**********************
FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, cLocDbf)
  local forever  := (wait = 0)
  local cIndex   := 
IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) 
//In case the file name comes with the extesion on it, we replace instead of 
appending to it.
  Local cCurrentPath := CAIGetCurDir()

  cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
  cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
  cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)


  IF !Empty(cLocDbf)
     Set Default To &(cLocDbf)
     CurDir(cLocDbf)
  ENDIF

  //save current and set new error handler
  bLastHandler := ERRORBLOCK({ |e| break(e) })
  begin sequence
    DO WHILE (forever .OR. wait > 0)
       bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) 
//Sets as readonly if current user levels don't meet  minimum required
       bShared   := (!ex_use) 
//Just transfer boolean value to a more meaningful name
       if FExists(file+".dbf")
          DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) 
//Open table w/ all modes already pre-set
       Else
          MsgBox("File '"+file+".dbf' does not exist in: "+ CAIGetCurDir())
          Return(.F.)
       EndIf
       IF File(cIndex)
          DBSETINDEX(cIndex)
       ENDIF

       IF .NOT. NETERR()                            && USE succeeds
          RETURN (.T.)
       ENDIF

       INKEY(1)                                     && wait 1 second
       wait = wait - 1
    ENDDO
  recover using objLocal
    MsgBox( objLocal:description )
  end
  ERRORBLOCK(bLastHandler)

  IF !Empty(cLocDbf)
     Set Default To &(cCurrentPath)
     CurDir(cCurrentPath)
  EndIf
RETURN (.F.)                                     && USE fails

**********************


The first time I ran the the new NET_USE I got an error message (attached), 
on the subsequent runs (i didnt change anything) it only crashes as before..
Marcelo



"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message 
news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
> hi,
>
>> NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
> ...
>>       IF empty(ali_nm)
>>           USE &file
>
> are you shure that fexist(file) at that time ? is &file local or network ?
> why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ?
>
>> 1.    Open and close the tables many times. (by going back and forth on
> many
>> or the same screen.) (about 30 times)
>
> did you use :
>
>   SET RUSHMORE ON/OFF
>   SET SMARTFILTER ONOFF
>   SET OPTIMIZE ON/OFF
>
> did you use your own DbeSys.PRG ?
>
> greetings by OHR
> Jimmy
>
>
> 




ErrorLog with new NETUSE.txt
Martin AltmannRe: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 21:55:52 +0200
Marcelo,
if you take a look at your error log, you will see that there is an error 
within your error handler (even so you told use that you are not using your 
own but the standard one)!
Look at the "called from" lines - it is a recursion!!

Regards,
Martin

______________________________

Deutschsprachiges Xbase-Forum:
http://www.xbaseforum.de/
______________________________
MarceloRe: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 09:35:17 -0400
Hi Martin,

    Please take a look at the attached files on my reply to Joe Carrick just 
below. I still think i'm not using a custom error file, but
maybe i'm missing to look somewhere?..

Thanks,
Marcelo

"Martin Altmann" <Altmann@altem.de> wrote in message 
news:6d31783$206acede$10409b@news.alaska-software.com...
> Marcelo,
> if you take a look at your error log, you will see that there is an error 
> within your error handler (even so you told use that you are not using 
> your own but the standard one)!
> Look at the "called from" lines - it is a recursion!!
>
> Regards,
> Martin
>
> -- 
> ______________________________
>
> Deutschsprachiges Xbase-Forum:
> http://www.xbaseforum.de/
> ______________________________
>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Mon, 02 Oct 2006 13:06:15 -0700
Hi Marcelo,

The Error log indicates a recursion error in the error handler.  In 
addition, there is an indication of corrupted data structures.  This 
usually happens in calls to external dll's (perhaps a WinAPI call or 
some other non Xbase++ function.

As I previously mentioned, the line reported is not necessarily correct, 
since defining a DLL Function early in the prg can cause improper line 
number reporting in the error handler.

If you will post the actual prg (not just a cut and paste into the 
message) then perhaps we can get to the bottom of this.  Otherwise, we 
are just spinning our wheels.

-Joe

Marcelo wrote:
> Okay I re-wrote the NET_USE file so it would have valid values all the time, 
> so we dont need to
> worry about something is not initialized or a file is not there:
> 
> 
> **********************
> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, cLocDbf)
>   local forever  := (wait = 0)
>   local cIndex   := 
> IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) 
> //In case the file name comes with the extesion on it, we replace instead of 
> appending to it.
>   Local cCurrentPath := CAIGetCurDir()
> 
>   cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>   cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>   cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
> 
> 
>   IF !Empty(cLocDbf)
>      Set Default To &(cLocDbf)
>      CurDir(cLocDbf)
>   ENDIF
> 
>   //save current and set new error handler
>   bLastHandler := ERRORBLOCK({ |e| break(e) })
>   begin sequence
>     DO WHILE (forever .OR. wait > 0)
>        bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) 
> //Sets as readonly if current user levels don't meet  minimum required
>        bShared   := (!ex_use) 
> //Just transfer boolean value to a more meaningful name
>        if FExists(file+".dbf")
>           DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) 
> //Open table w/ all modes already pre-set
>        Else
>           MsgBox("File '"+file+".dbf' does not exist in: "+ CAIGetCurDir())
>           Return(.F.)
>        EndIf
>        IF File(cIndex)
>           DBSETINDEX(cIndex)
>        ENDIF
> 
>        IF .NOT. NETERR()                            && USE succeeds
>           RETURN (.T.)
>        ENDIF
> 
>        INKEY(1)                                     && wait 1 second
>        wait = wait - 1
>     ENDDO
>   recover using objLocal
>     MsgBox( objLocal:description )
>   end
>   ERRORBLOCK(bLastHandler)
> 
>   IF !Empty(cLocDbf)
>      Set Default To &(cCurrentPath)
>      CurDir(cCurrentPath)
>   EndIf
> RETURN (.F.)                                     && USE fails
> 
> **********************
> 
> 
> The first time I ran the the new NET_USE I got an error message (attached), 
> on the subsequent runs (i didnt change anything) it only crashes as before..
> Marcelo
> 
> 
> 
> "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message 
> news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
> 
>>hi,
>>
>>
>>>NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>>
>>...
>>
>>>      IF empty(ali_nm)
>>>          USE &file
>>
>>are you shure that fexist(file) at that time ? is &file local or network ?
>>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ?
>>
>>
>>>1.    Open and close the tables many times. (by going back and forth on
>>
>>many
>>
>>>or the same screen.) (about 30 times)
>>
>>did you use :
>>
>>  SET RUSHMORE ON/OFF
>>  SET SMARTFILTER ONOFF
>>  SET OPTIMIZE ON/OFF
>>
>>did you use your own DbeSys.PRG ?
>>
>>greetings by OHR
>>Jimmy
>>
>>
>>
> 
> 
> 
> ------------------------------------------------------------------------------
> ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 14:08:17
> 
> Xbase++ version     : Xbase++ (R) Version 1.90.331
> Operating system    : Windows XP 05.01 Build 02600 Service Pack 2
> ------------------------------------------------------------------------------
> oError:args         :
>           -> VALTYPE: N VALUE: 586
> oError:canDefault   : N
> oError:canRetry     : N
> oError:canSubstitute: Y
> oError:cargo        : NIL
> oError:description  : Internal data structures corrupted
> oError:filename     : 
> oError:genCode      :         41
> oError:operation    : procName
> oError:osCode       :          0
> oError:severity     :          2
> oError:subCode      :          5
> oError:subSystem    : BASE
> oError:thread       :          1
> oError:tries        :          0
> ------------------------------------------------------------------------------
> CALLSTACK:
> ------------------------------------------------------------------------------
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
> Called from STANDARDEH(178)
> Called from (B)ERRORSYS(51)
MarceloRe: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 09:34:35 -0400
Hi Joe,

    Here it is the entire PRG where NET_USE is declared. I'm also including 
a copy of the project file so you guys
can analyse if I'm in fact using a custom error handler.
    I hope thats the file you were talking about.

    About calling a exertnal DLL, yes we have a test menu that does call a 
external DLL, but I dont go to
this menu at all when reproducing this error. Could it still affect the 
program normal exectution?

Thanks,
Marcelo


"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:28f1edd5$406f1068$10463f@news.alaska-software.com...
> Hi Marcelo,
>
> The Error log indicates a recursion error in the error handler.  In
> addition, there is an indication of corrupted data structures.  This
> usually happens in calls to external dll's (perhaps a WinAPI call or
> some other non Xbase++ function.
>
> As I previously mentioned, the line reported is not necessarily correct,
> since defining a DLL Function early in the prg can cause improper line
> number reporting in the error handler.
>
> If you will post the actual prg (not just a cut and paste into the
> message) then perhaps we can get to the bottom of this.  Otherwise, we
> are just spinning our wheels.
>
> -Joe
>
> Marcelo wrote:
>> Okay I re-wrote the NET_USE file so it would have valid values all the 
>> time,
>> so we dont need to
>> worry about something is not initialized or a file is not there:
>>
>>
>> **********************
>> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, 
>> cLocDbf)
>>   local forever  := (wait = 0)
>>   local cIndex   :=
>> IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext())
>> //In case the file name comes with the extesion on it, we replace instead 
>> of
>> appending to it.
>>   Local cCurrentPath := CAIGetCurDir()
>>
>>   cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>>   cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>>   cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
>>
>>
>>   IF !Empty(cLocDbf)
>>      Set Default To &(cLocDbf)
>>      CurDir(cLocDbf)
>>   ENDIF
>>
>>   //save current and set new error handler
>>   bLastHandler := ERRORBLOCK({ |e| break(e) })
>>   begin sequence
>>     DO WHILE (forever .OR. wait > 0)
>>        bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level))
>> //Sets as readonly if current user levels don't meet  minimum required
>>        bShared   := (!ex_use)
>> //Just transfer boolean value to a more meaningful name
>>        if FExists(file+".dbf")
>>           DBUSEAREA(,,file,ali_nm,bShared,bReadOnly)
>> //Open table w/ all modes already pre-set
>>        Else
>>           MsgBox("File '"+file+".dbf' does not exist in: "+ 
>> CAIGetCurDir())
>>           Return(.F.)
>>        EndIf
>>        IF File(cIndex)
>>           DBSETINDEX(cIndex)
>>        ENDIF
>>
>>        IF .NOT. NETERR()                            && USE succeeds
>>           RETURN (.T.)
>>        ENDIF
>>
>>        INKEY(1)                                     && wait 1 second
>>        wait = wait - 1
>>     ENDDO
>>   recover using objLocal
>>     MsgBox( objLocal:description )
>>   end
>>   ERRORBLOCK(bLastHandler)
>>
>>   IF !Empty(cLocDbf)
>>      Set Default To &(cCurrentPath)
>>      CurDir(cCurrentPath)
>>   EndIf
>> RETURN (.F.)                                     && USE fails
>>
>> **********************
>>
>>
>> The first time I ran the the new NET_USE I got an error message 
>> (attached),
>> on the subsequent runs (i didnt change anything) it only crashes as 
>> before..
>> Marcelo
>>
>>
>>
>> "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message
>> news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
>>
>>>hi,
>>>
>>>
>>>>NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>>>
>>>...
>>>
>>>>      IF empty(ali_nm)
>>>>          USE &file
>>>
>>>are you shure that fexist(file) at that time ? is &file local or network 
>>>?
>>>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG 
>>>?
>>>
>>>
>>>>1.    Open and close the tables many times. (by going back and forth on
>>>
>>>many
>>>
>>>>or the same screen.) (about 30 times)
>>>
>>>did you use :
>>>
>>>  SET RUSHMORE ON/OFF
>>>  SET SMARTFILTER ONOFF
>>>  SET OPTIMIZE ON/OFF
>>>
>>>did you use your own DbeSys.PRG ?
>>>
>>>greetings by OHR
>>>Jimmy
>>>
>>>
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 
>> 14:08:17
>>
>> Xbase++ version     : Xbase++ (R) Version 1.90.331
>> Operating system    : Windows XP 05.01 Build 02600 Service Pack 2
>> ------------------------------------------------------------------------------
>> oError:args         :
>>           -> VALTYPE: N VALUE: 586
>> oError:canDefault   : N
>> oError:canRetry     : N
>> oError:canSubstitute: Y
>> oError:cargo        : NIL
>> oError:description  : Internal data structures corrupted
>> oError:filename     :
>> oError:genCode      :         41
>> oError:operation    : procName
>> oError:osCode       :          0
>> oError:severity     :          2
>> oError:subCode      :          5
>> oError:subSystem    : BASE
>> oError:thread       :          1
>> oError:tries        :          0
>> ------------------------------------------------------------------------------
>> CALLSTACK:
>> ------------------------------------------------------------------------------
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51)
>> Called from STANDARDEH(178)
>> Called from (B)ERRORSYS(51) 






OPEN_COM.PRG
PROJECT.XPJ
Joe Carrick Re: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 09:05:25 -0700
Hi Marcelo,

Offhand, I don't see anything in the code that would cause this problem. 
  However, the fact that the complete network path is not specified for 
the file still bothers me.  Constructing a complete path/fileName would 
be appropriate to limit the possibilities of what's causing the problem. 
  In addition, I'd do the same for the index file(s).  A printout or 
message to indicate the current directory and the complete file pathname 
would also be help you determine exactly what is being opened.  It's 
possible that there are more than one location where the filename exists 
(in more than one path) and maybe one can be opened and another can't.

You say that the problem occurs at a specific site and you can also 
cause it by going to another app such as Explorer, etc and then 
switching back to your app and attempting to open the file.  This 
strongly suggests an I/O problem that could be path or network settings 
related.

I also noted that you have some include files that might actually have 
executable code within them.  That could mess up the error line reporting.

I can't really do anything with the project file because that would 
require all source files as well.  The best bet if you can't resolve 
this yourself is to send a complete project with all required files to 
Alaska Support along with a description of how to make it fail.  This 
would use some of your support points, but in reality, the failure is 
pretty specific to your environment.

IMO, the problem is related to file path/name and without fully testing 
to see what those are immediately before the USE and SET INDEX commands, 
you will have a real tough time finding the cause.

In a network environment, I always specify the complete network path and 
file name of database and index files.  Relying on just the filenames is 
very risky.

-Joe



Marcelo wrote:
> Hi Joe,
> 
>     Here it is the entire PRG where NET_USE is declared. I'm also including 
> a copy of the project file so you guys
> can analyse if I'm in fact using a custom error handler.
>     I hope thats the file you were talking about.
> 
>     About calling a exertnal DLL, yes we have a test menu that does call a 
> external DLL, but I dont go to
> this menu at all when reproducing this error. Could it still affect the 
> program normal exectution?
> 
> Thanks,
> Marcelo
> 
> 
> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
> news:28f1edd5$406f1068$10463f@news.alaska-software.com...
> 
>>Hi Marcelo,
>>
>>The Error log indicates a recursion error in the error handler.  In
>>addition, there is an indication of corrupted data structures.  This
>>usually happens in calls to external dll's (perhaps a WinAPI call or
>>some other non Xbase++ function.
>>
>>As I previously mentioned, the line reported is not necessarily correct,
>>since defining a DLL Function early in the prg can cause improper line
>>number reporting in the error handler.
>>
>>If you will post the actual prg (not just a cut and paste into the
>>message) then perhaps we can get to the bottom of this.  Otherwise, we
>>are just spinning our wheels.
>>
>>-Joe
>>
>>Marcelo wrote:
>>
>>>Okay I re-wrote the NET_USE file so it would have valid values all the 
>>>time,
>>>so we dont need to
>>>worry about something is not initialized or a file is not there:
>>>
>>>
>>>**********************
>>>FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, 
>>>cLocDbf)
>>>  local forever  := (wait = 0)
>>>  local cIndex   :=
>>>IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext())
>>>//In case the file name comes with the extesion on it, we replace instead 
>>>of
>>>appending to it.
>>>  Local cCurrentPath := CAIGetCurDir()
>>>
>>>  cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>>>  cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>>>  cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
>>>
>>>
>>>  IF !Empty(cLocDbf)
>>>     Set Default To &(cLocDbf)
>>>     CurDir(cLocDbf)
>>>  ENDIF
>>>
>>>  //save current and set new error handler
>>>  bLastHandler := ERRORBLOCK({ |e| break(e) })
>>>  begin sequence
>>>    DO WHILE (forever .OR. wait > 0)
>>>       bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level))
>>>//Sets as readonly if current user levels don't meet  minimum required
>>>       bShared   := (!ex_use)
>>>//Just transfer boolean value to a more meaningful name
>>>       if FExists(file+".dbf")
>>>          DBUSEAREA(,,file,ali_nm,bShared,bReadOnly)
>>>//Open table w/ all modes already pre-set
>>>       Else
>>>          MsgBox("File '"+file+".dbf' does not exist in: "+ 
>>>CAIGetCurDir())
>>>          Return(.F.)
>>>       EndIf
>>>       IF File(cIndex)
>>>          DBSETINDEX(cIndex)
>>>       ENDIF
>>>
>>>       IF .NOT. NETERR()                            && USE succeeds
>>>          RETURN (.T.)
>>>       ENDIF
>>>
>>>       INKEY(1)                                     && wait 1 second
>>>       wait = wait - 1
>>>    ENDDO
>>>  recover using objLocal
>>>    MsgBox( objLocal:description )
>>>  end
>>>  ERRORBLOCK(bLastHandler)
>>>
>>>  IF !Empty(cLocDbf)
>>>     Set Default To &(cCurrentPath)
>>>     CurDir(cCurrentPath)
>>>  EndIf
>>>RETURN (.F.)                                     && USE fails
>>>
>>>**********************
>>>
>>>
>>>The first time I ran the the new NET_USE I got an error message 
>>>(attached),
>>>on the subsequent runs (i didnt change anything) it only crashes as 
>>>before..
>>>Marcelo
>>>
>>>
>>>
>>>"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message
>>>news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
>>>
>>>
>>>>hi,
>>>>
>>>>
>>>>
>>>>>NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>>>>
>>>>...
>>>>
>>>>
>>>>>     IF empty(ali_nm)
>>>>>         USE &file
>>>>
>>>>are you shure that fexist(file) at that time ? is &file local or network 
>>>>?
>>>>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG 
>>>>?
>>>>
>>>>
>>>>
>>>>>1.    Open and close the tables many times. (by going back and forth on
>>>>
>>>>many
>>>>
>>>>
>>>>>or the same screen.) (about 30 times)
>>>>
>>>>did you use :
>>>>
>>>> SET RUSHMORE ON/OFF
>>>> SET SMARTFILTER ONOFF
>>>> SET OPTIMIZE ON/OFF
>>>>
>>>>did you use your own DbeSys.PRG ?
>>>>
>>>>greetings by OHR
>>>>Jimmy
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>------------------------------------------------------------------------------
>>>ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 
>>>14:08:17
>>>
>>>Xbase++ version     : Xbase++ (R) Version 1.90.331
>>>Operating system    : Windows XP 05.01 Build 02600 Service Pack 2
>>>------------------------------------------------------------------------------
>>>oError:args         :
>>>          -> VALTYPE: N VALUE: 586
>>>oError:canDefault   : N
>>>oError:canRetry     : N
>>>oError:canSubstitute: Y
>>>oError:cargo        : NIL
>>>oError:description  : Internal data structures corrupted
>>>oError:filename     :
>>>oError:genCode      :         41
>>>oError:operation    : procName
>>>oError:osCode       :          0
>>>oError:severity     :          2
>>>oError:subCode      :          5
>>>oError:subSystem    : BASE
>>>oError:thread       :          1
>>>oError:tries        :          0
>>>------------------------------------------------------------------------------
>>>CALLSTACK:
>>>------------------------------------------------------------------------------
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51)
>>>Called from STANDARDEH(178)
>>>Called from (B)ERRORSYS(51) 
> 
> 
>
MarceloRe: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 13:08:15 -0400
Hi Joe,

    I added an output file (using the Fopen/Fclose tested before) to output 
the entire situation of files opens, work areas and paths every time
it passes by that area. I also added the full path to the table name.
    Everything seems to be fine. Furthermore I'm testing before opening, if 
there is already a file under that work area, and if it does have
a filter set. That part of the code is never fire, which means that 
everything is closed and there are no filters on that work area.
    I already sent a request to Alaska, and i'm waiting for them to give me 
any feed back.
    I will keep trying it here, and post my result tests here if you guys 
don't mind, just so if you have an idea on what i'm doing you
guys can reply on it.

Thank you all for the great help so far!
Marcelo.


"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:7a0d2883$528786a3$1149c1@news.alaska-software.com...
> Hi Marcelo,
>
> Offhand, I don't see anything in the code that would cause this problem. 
> However, the fact that the complete network path is not specified for the 
> file still bothers me.  Constructing a complete path/fileName would be 
> appropriate to limit the possibilities of what's causing the problem. In 
> addition, I'd do the same for the index file(s).  A printout or message to 
> indicate the current directory and the complete file pathname would also 
> be help you determine exactly what is being opened.  It's possible that 
> there are more than one location where the filename exists (in more than 
> one path) and maybe one can be opened and another can't.
>
> You say that the problem occurs at a specific site and you can also cause 
> it by going to another app such as Explorer, etc and then switching back 
> to your app and attempting to open the file.  This strongly suggests an 
> I/O problem that could be path or network settings related.
>
> I also noted that you have some include files that might actually have 
> executable code within them.  That could mess up the error line reporting.
>
> I can't really do anything with the project file because that would 
> require all source files as well.  The best bet if you can't resolve this 
> yourself is to send a complete project with all required files to Alaska 
> Support along with a description of how to make it fail.  This would use 
> some of your support points, but in reality, the failure is pretty 
> specific to your environment.
>
> IMO, the problem is related to file path/name and without fully testing to 
> see what those are immediately before the USE and SET INDEX commands, you 
> will have a real tough time finding the cause.
>
> In a network environment, I always specify the complete network path and 
> file name of database and index files.  Relying on just the filenames is 
> very risky.
>
> -Joe
>
>
>
> Marcelo wrote:
>> Hi Joe,
>>
>>     Here it is the entire PRG where NET_USE is declared. I'm also 
>> including a copy of the project file so you guys
>> can analyse if I'm in fact using a custom error handler.
>>     I hope thats the file you were talking about.
>>
>>     About calling a exertnal DLL, yes we have a test menu that does call 
>> a external DLL, but I dont go to
>> this menu at all when reproducing this error. Could it still affect the 
>> program normal exectution?
>>
>> Thanks,
>> Marcelo
>>
>>
>> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
>> news:28f1edd5$406f1068$10463f@news.alaska-software.com...
>>
>>>Hi Marcelo,
>>>
>>>The Error log indicates a recursion error in the error handler.  In
>>>addition, there is an indication of corrupted data structures.  This
>>>usually happens in calls to external dll's (perhaps a WinAPI call or
>>>some other non Xbase++ function.
>>>
>>>As I previously mentioned, the line reported is not necessarily correct,
>>>since defining a DLL Function early in the prg can cause improper line
>>>number reporting in the error handler.
>>>
>>>If you will post the actual prg (not just a cut and paste into the
>>>message) then perhaps we can get to the bottom of this.  Otherwise, we
>>>are just spinning our wheels.
>>>
>>>-Joe
>>>
>>>Marcelo wrote:
>>>
>>>>Okay I re-wrote the NET_USE file so it would have valid values all the 
>>>>time,
>>>>so we dont need to
>>>>worry about something is not initialized or a file is not there:
>>>>
>>>>
>>>>**********************
>>>>FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, 
>>>>cLocDbf)
>>>>  local forever  := (wait = 0)
>>>>  local cIndex   :=
>>>>IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext())
>>>>//In case the file name comes with the extesion on it, we replace 
>>>>instead of
>>>>appending to it.
>>>>  Local cCurrentPath := CAIGetCurDir()
>>>>
>>>>  cLocDbf     := IIF(cLocDbf==NIL,"",cLocDbf)
>>>>  cCurrLevel  := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL)
>>>>  cMin_Level  := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev)
>>>>
>>>>
>>>>  IF !Empty(cLocDbf)
>>>>     Set Default To &(cLocDbf)
>>>>     CurDir(cLocDbf)
>>>>  ENDIF
>>>>
>>>>  //save current and set new error handler
>>>>  bLastHandler := ERRORBLOCK({ |e| break(e) })
>>>>  begin sequence
>>>>    DO WHILE (forever .OR. wait > 0)
>>>>       bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level))
>>>>//Sets as readonly if current user levels don't meet  minimum required
>>>>       bShared   := (!ex_use)
>>>>//Just transfer boolean value to a more meaningful name
>>>>       if FExists(file+".dbf")
>>>>          DBUSEAREA(,,file,ali_nm,bShared,bReadOnly)
>>>>//Open table w/ all modes already pre-set
>>>>       Else
>>>>          MsgBox("File '"+file+".dbf' does not exist in: "+ 
>>>> CAIGetCurDir())
>>>>          Return(.F.)
>>>>       EndIf
>>>>       IF File(cIndex)
>>>>          DBSETINDEX(cIndex)
>>>>       ENDIF
>>>>
>>>>       IF .NOT. NETERR()                            && USE succeeds
>>>>          RETURN (.T.)
>>>>       ENDIF
>>>>
>>>>       INKEY(1)                                     && wait 1 second
>>>>       wait = wait - 1
>>>>    ENDDO
>>>>  recover using objLocal
>>>>    MsgBox( objLocal:description )
>>>>  end
>>>>  ERRORBLOCK(bLastHandler)
>>>>
>>>>  IF !Empty(cLocDbf)
>>>>     Set Default To &(cCurrentPath)
>>>>     CurDir(cCurrentPath)
>>>>  EndIf
>>>>RETURN (.F.)                                     && USE fails
>>>>
>>>>**********************
>>>>
>>>>
>>>>The first time I ran the the new NET_USE I got an error message 
>>>>(attached),
>>>>on the subsequent runs (i didnt change anything) it only crashes as 
>>>>before..
>>>>Marcelo
>>>>
>>>>
>>>>
>>>>"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message
>>>>news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com...
>>>>
>>>>
>>>>>hi,
>>>>>
>>>>>
>>>>>
>>>>>>NET_USE (file, ex_use, wait, min_lev, ali_nm,  cLocDbf)
>>>>>
>>>>>...
>>>>>
>>>>>
>>>>>>     IF empty(ali_nm)
>>>>>>         USE &file
>>>>>
>>>>>are you shure that fexist(file) at that time ? is &file local or 
>>>>>network ?
>>>>>why did you not get a Errorlog ... did you use a "modifyed" 
>>>>>ErrorSys.PRG ?
>>>>>
>>>>>
>>>>>
>>>>>>1.    Open and close the tables many times. (by going back and forth 
>>>>>>on
>>>>>
>>>>>many
>>>>>
>>>>>
>>>>>>or the same screen.) (about 30 times)
>>>>>
>>>>>did you use :
>>>>>
>>>>> SET RUSHMORE ON/OFF
>>>>> SET SMARTFILTER ONOFF
>>>>> SET OPTIMIZE ON/OFF
>>>>>
>>>>>did you use your own DbeSys.PRG ?
>>>>>
>>>>>greetings by OHR
>>>>>Jimmy
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>------------------------------------------------------------------------------
>>>>ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 
>>>>14:08:17
>>>>
>>>>Xbase++ version     : Xbase++ (R) Version 1.90.331
>>>>Operating system    : Windows XP 05.01 Build 02600 Service Pack 2
>>>>------------------------------------------------------------------------------
>>>>oError:args         :
>>>>          -> VALTYPE: N VALUE: 586
>>>>oError:canDefault   : N
>>>>oError:canRetry     : N
>>>>oError:canSubstitute: Y
>>>>oError:cargo        : NIL
>>>>oError:description  : Internal data structures corrupted
>>>>oError:filename     :
>>>>oError:genCode      :         41
>>>>oError:operation    : procName
>>>>oError:osCode       :          0
>>>>oError:severity     :          2
>>>>oError:subCode      :          5
>>>>oError:subSystem    : BASE
>>>>oError:thread       :          1
>>>>oError:tries        :          0
>>>>------------------------------------------------------------------------------
>>>>CALLSTACK:
>>>>------------------------------------------------------------------------------
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>>>Called from STANDARDEH(178)
>>>>Called from (B)ERRORSYS(51)
>>
>>
Joe Carrick Re: Random Crash on xBase Hybrid.
on Tue, 03 Oct 2006 09:24:55 -0700
Marcelo wrote:

> 
>     About calling a exertnal DLL, yes we have a test menu that does call a 
> external DLL, but I dont go to
> this menu at all when reproducing this error. Could it still affect the 
> program normal exectution?
> 

Data Structures Corrupted means that something has "clobbered" a portion 
of memory.  This can happen if a parameter in a C++ or WinAPI function 
is of the wrong type or value or .....?  Many of these functions have 
little or no internal error correction, so parameters must be very 
carefully used.  In addition, another App or a virus could do a similar 
thing.

The actual program failure can occur a considerable time later when that 
portion of memory is accessed by another process.  So the answer to your 
question is "yes".  Assume that a specific location in memory has a low 
level function in binary form (possibly a file open function that 
normally reports an error condition if it fails).  Now, some other 
program improperly changes a bit within that memory area.  At this 
point, the function no longer works properly if at all.

If that happens, you can be relatively sure that your program will crash 
someplace but where it does may not have anything to do with the actual 
problem.

That said, I doubt your test menu is the problem.

-Joe
MarceloRe: Random Crash on xBase Hybrid.
on Wed, 04 Oct 2006 15:54:27 -0400
Hi there,

    I have news about this problem!
    I finally was able to isolate it. You can find the small code, project 
and empty table attached.
    Some of the code won't make too much sense, since I manually changed it 
so it wouldn't need
all the bells and whistles that come with it.

    For now, I say that the problem is on the set filter (or dbsetfilter). 
you can see further details on the
MAIN function that has some comments to reproduce different problems 
results.

    Can anyone tell me why the set filter makes it crash?

Thanks,
Marcelo
PS: I'm still waiting for Alaska to reply me.:P So guys, please help! 

"Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
news:532eddba$2637896f$11491c@news.alaska-software.com...
>
>
> Marcelo wrote:
>
>>
>>     About calling a exertnal DLL, yes we have a test menu that does call 
>> a
>> external DLL, but I dont go to
>> this menu at all when reproducing this error. Could it still affect the
>> program normal exectution?
>>
>
> Data Structures Corrupted means that something has "clobbered" a portion
> of memory.  This can happen if a parameter in a C++ or WinAPI function
> is of the wrong type or value or .....?  Many of these functions have
> little or no internal error correction, so parameters must be very
> carefully used.  In addition, another App or a virus could do a similar
> thing.
>
> The actual program failure can occur a considerable time later when that
> portion of memory is accessed by another process.  So the answer to your
> question is "yes".  Assume that a specific location in memory has a low
> level function in binary form (possibly a file open function that
> normally reports an error condition if it fails).  Now, some other
> program improperly changes a bit within that memory area.  At this
> point, the function no longer works properly if at all.
>
> If that happens, you can be relatively sure that your program will crash
> someplace but where it does may not have anything to do with the actual
> problem.
>
> That said, I doubt your test menu is the problem.
>
> -Joe 




test2.zip
James Loughner Re: Random Crash on xBase Hybrid.
on Wed, 04 Oct 2006 18:16:45 -0400
Try

SET RUSHMORE OFF

There are known problem with this tech. It defaults ON.

SET OPTIMIZE OFF

would be the second thing I'd try.


Another possible area is Smart Filter

SET SMARTFILTER OFF

is the third thing

Jim

Marcelo wrote:
> Hi there,
> 
>     I have news about this problem!
>     I finally was able to isolate it. You can find the small code, project 
> and empty table attached.
>     Some of the code won't make too much sense, since I manually changed it 
> so it wouldn't need
> all the bells and whistles that come with it.
> 
>     For now, I say that the problem is on the set filter (or dbsetfilter). 
> you can see further details on the
> MAIN function that has some comments to reproduce different problems 
> results.
> 
>     Can anyone tell me why the set filter makes it crash?
> 
> Thanks,
> Marcelo
> PS: I'm still waiting for Alaska to reply me.:P So guys, please help! 
> 
> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message 
> news:532eddba$2637896f$11491c@news.alaska-software.com...
>>
>> Marcelo wrote:
>>
>>>     About calling a exertnal DLL, yes we have a test menu that does call 
>>> a
>>> external DLL, but I dont go to
>>> this menu at all when reproducing this error. Could it still affect the
>>> program normal exectution?
>>>
>> Data Structures Corrupted means that something has "clobbered" a portion
>> of memory.  This can happen if a parameter in a C++ or WinAPI function
>> is of the wrong type or value or .....?  Many of these functions have
>> little or no internal error correction, so parameters must be very
>> carefully used.  In addition, another App or a virus could do a similar
>> thing.
>>
>> The actual program failure can occur a considerable time later when that
>> portion of memory is accessed by another process.  So the answer to your
>> question is "yes".  Assume that a specific location in memory has a low
>> level function in binary form (possibly a file open function that
>> normally reports an error condition if it fails).  Now, some other
>> program improperly changes a bit within that memory area.  At this
>> point, the function no longer works properly if at all.
>>
>> If that happens, you can be relatively sure that your program will crash
>> someplace but where it does may not have anything to do with the actual
>> problem.
>>
>> That said, I doubt your test menu is the problem.
>>
>> -Joe 
> 
>
AUGE_OHRRe: Random Crash on xBase Hybrid.
on Thu, 05 Oct 2006 03:15:41 +0200
hi,

>Can anyone tell me why the set filter makes it crash?

where is your XppError.Log (not XppFatal.Log)

the only Error i become after 1t loop is FERROR() = 32 which is
clear while you never CLOSE you DBF but you open it every Time
(why ?) in the loop.

i do not undertand why you working so much with CURDIR()
(! note : difference to Cl*pper !)

>       IF .NOT. NETERR()                            && USE succeeds
>          RETURN (.T.)
>       ENDIF
>
>       IF File(cIndex)
>          DBSETINDEX(cIndex)
>       ENDIF

i told you to use NetErr() before SET INDEX, but now you will
never reach SET INDEX while it have RETURN(.T.) before ...

>PS: I'm still waiting for Alaska to reply me.:P So guys, please help! 

sorry to say : these are (a lot of) User Errors and not Xbase++ Errors

... and if you make a sample, please try to make it "simple" and "small"
to show EXACT what do NOT work and nothind else.

greeting by OHR
Jimmy