Done ![]()
Done ![]()
Michel,
I need your help to build a PRG without FWH that reproduces the error.
I just sent you an email, please have a look at it ![]()
thanks,
Hi All,
Any update?
Thank you,
Jose
Jose,
Michel solved it. He modified some lines in his code and the problem went away.
His code is complex so I don't know for sure what made the trick, but it worked ![]()
Antonio,
Thanks again for all your efforts in helping me.
I let my application do its task in another way after which the problem didn't occur anymore.
I really don't know what went wrong. But at the moment, my problem is solved. And that is the main thing.
Regards,
Michel D.
Genk (Belgium)
I use : FiveWin for (x)Harbour v. 25.12 - Harbour 3.2.0 (May 2025) - xHarbour Builder (January 2020) - Bcc773
Thank you guys for the quick reply.
How about Tim's observation on his app?
Hello Tim. Kindly comment. Thank you very much.
I am a bit worried because we have scheduled testing of our app built with Harbour 3.2 and FWH 14.11 early next year.
Regards to all,
Jose
Hello, can you please share how you solved it please?.
Thank you.
Michel,
Could you compare your old code and the new one, using UltraCompare or any other similar tool, and post here the differences ?
many thanks ![]()
FOR Agi=1 TO AgTel
IF actie = "Insert"
UnAGCODE := SPACE(10)
FOR CreTel = 1 TO 100
CreRecA1 := 0
CreRecA1 := AddRecJuda()
IF CreRecA1 <> 0 .AND. EMPTY(AG->AGINGDAT) .AND. EMPTY(AG->AGINGEVER)
CreTel := 100
ENDIF
NEXT
IF CreRecA1 <> 0 .AND. CreRecA1 = AG->(RECCOUNT())
UnAGCODE := LeesAgUniek()
GOTO CreRecA1
OldPar[3] := RECNO()
ELSE
dRet := .F.
ENDIF
ENDIF
BT_ET_Contr("cAGBTIJD","cAGETIJD")
IF !cAGAGRAP
IF !EMPTY(cAGBTIJD) .AND. ALLTRIM(cAGBTIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGBTIJD","dAGBTIJD","cAGRTIJD","cNIETS1",.F.)
ELSE
dAGBTIJD := cAGBTIJD
ENDIF
IF !EMPTY(cAGETIJD) .AND. ALLTRIM(cAGETIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGETIJD","dAGETIJD","cAGRTIJD","cNIETS1",.T.)
ELSE
dAGETIJD := cAGETIJD
ENDIF
ENDIF
IF actie = "Update" .AND. CTOD(cAGDATUM) <> CTOD(pAGDATUM) .AND. MsgNoYes("U wijzigde de datum van dit agendapunt !!!" + CHR(13) + CHR(13) + "Moet dit agendapunt op de originele datum ook bewaard blijven ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
UnAGCODE := SPACE(10)
FOR CreTel = 1 TO 100
CreRecA1 := 0
CreRecA1 := AddRecJuda()
IF CreRecA1 <> 0 .AND. EMPTY(AG->AGINGDAT) .AND. EMPTY(AG->AGINGEVER)
CreTel := 100
ENDIF
NEXT
IF CreRecA1 <> 0 .AND. CreRecA1 = AG->(RECCOUNT())
UnAGCODE := LeesAgUniek()
GOTO CreRecA1
OldPar[3] := RECNO()
oOrig := .T.
ELSE
dRet := .F.
ENDIF
ENDIF
SELECT AG
IF dRet .AND. RecLockJuda(2,PROCNAME(),PROCLINE(),2,TaalCode)
IF VAL(UnAGCODE) <> 0
AG->AGCODE := UnAGCODE
ENDIF
AG->AGUSER := &("cAGUSER" + STR(Agi,1,0))
AG->AGUSERN := &("cAGUSERN" + STR(Agi,1,0))
AG->AGUSERNS := &("cAGUSERNS" + STR(Agi,1,0))
AG->AGDOSKOP := cAGDOSKOP
NaamSamen("AG->AGDOSSIER",cAGDOS1,cAGDOS2,cAGSDOS)
SELECT DOSS
SET ORDER TO 5
SEEK(UPPER(ALLTRIM(AG->AGDOSSIER)))
IF FOUND()
cBKBEHE := DOSS->DBEHENR
ENDIF
SELECT AG
AG->AGBEHEER := cBKBEHE
cBKBEHE := SPACE(7)
AG->AGDATUM := CTOD(cAGDATUM)
AG->AGGROEP := cAGGROEP
AG->AGSRTNR := cAGSRTNR
AG->AGSRTNRN := cAGSRTNRN
AG->AGVERGNR := cAGVERGNR
AG->AGVERGNRN := cAGVERGNRN
IF !cAGAGRAP
IF !EMPTY(cAGBTIJD) .AND. ALLTRIM(cAGBTIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGBTIJD","dAGBTIJD","cAGRTIJD","cNIETS1",.F.)
ELSE
dAGBTIJD := cAGBTIJD
ENDIF
IF !EMPTY(cAGETIJD) .AND. ALLTRIM(cAGETIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGETIJD","dAGETIJD","cAGRTIJD","cNIETS1",.T.)
ELSE
dAGETIJD := cAGETIJD
ENDIF
ELSE
dAGBTIJD := "99:99"
dAGETIJD := "99:99"
ENDIF
AG->AGBTIJD := IF(!cAGAGRAP,IF(EMPTY(cAGBTIJD) .OR. ALLTRIM(cAGBTIJD)="00:00" .OR. ALLTRIM(cAGBTIJD)=":",PAR->STBTIJD,cAGBTIJD),"99:99")
AG->AGETIJD := IF(!cAGAGRAP,IF(EMPTY(cAGETIJD) .OR. ALLTRIM(cAGETIJD)="00:00" .OR. ALLTRIM(cAGETIJD)=":",PAR->STETIJD,cAGETIJD),"99:99")
AG->AGRTIJD := IF(EMPTY(cAGRTIJD) .OR. ALLTRIM(cAGRTIJD)="00:00" .OR. ALLTRIM(cAGRTIJD)=":","00:00",cAGRTIJD)
IF !cAGAGRAP
IF EMPTY(cAGRTIJD) .OR. ALLTRIM(cAGRTIJD)=":" .OR. ALLTRIM(cAGRTIJD) = "00:00" .OR. ALLTRIM(cAGRTIJD) = "99:99"
AG->AGERTIJD := 10000 + (Uur60To100(cAGETIJD) * 100)
ELSE
UurVersch("AG->AGETIJD","cAGERTIJD","AG->AGRTIJD",,.T.,.F.)
AG->AGERTIJD := 10000 + (Uur60To100(cAGERTIJD) * 100)
ENDIF
ELSE
AG->AGERTIJD := 0
ENDIF
AG->AGBCODE := UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(CTOD(cAGDATUM))+LEFT(dAGBTIJD,2)+RIGHT(dAGBTIJD,2))
AG->AGECODE := UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(CTOD(cAGDATUM))+LEFT(dAGETIJD,2)+RIGHT(dAGETIJD,2))
AG->AGBCODC := RIGHT(AG->AGBCODE,12)
AG->AGECODC := RIGHT(AG->AGECODE,12)
AG->AGOMSCH := cAGOMSCH
AG->AGALARM := IF(!cAGAFGESL,cAGALARM,.F.)
IF cAGALARM .AND. CTOD(cAGDATUM) <> CTOD(oAGDATUM)
IF oAANTDAG <> 0 .AND. MsgYesNo("Mag de alarmdatum in verhouding aangepast worden"+CHR(13)+"aan de ingegeven datum van het alarmpunt ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
AG->AGALDAG := CTOD(cAGDATUM) - oAANTDAG
ELSEIF MsgYesNo("Mag de alarmdatum aan de datum"+CHR(13)+"van het agendapunt aangepast worden ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
AG->AGALDAG := CTOD(cAGDATUM)
ENDIF
ELSE
AG->AGALDAG := IF(!cAGAFGESL .AND. cAGALARM,CTOD(cAGALDAG),CTOD(" / / "))
ENDIF
AG->AGALUUR := IF(!cAGAFGESL .AND. cAGALARM .AND. !EMPTY(cAGALUUR) .AND. ALLTRIM(cAGALUUR) <> ":",cAGALUUR,"99:99")
AG->AGALCODE := IF(!cAGAFGESL .AND. cAGALARM,UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(AG->AGALDAG)+IF(AG->AGALUUR<>"99:99",LEFT(AG->AGALUUR,2)+RIGHT(AG->AGALUUR,2),"0000")),SPACE(19))
AG->AGVOORL := IF(!cAGAGRAP,cAGVOORL,.F.)
AG->AGPRNR := cAGPRNR
AG->AGPRNRN := cAGPRNRN
AG->AGANNR := cAGANNR
AG->AGANNRN := cAGANNRN
AG->AGMETWIE := cAGMETWIE
AG->AGAGDOS := IF(!cAGAGRAP,cAGAGDOS,.F.)
AG->AGAGKAN := IF(!cAGAGRAP,cAGAGKAN,.F.)
AG->AGAGPRO := IF(!cAGAGRAP,cAGAGPRO,.F.)
AG->AGAGPER := IF(!cAGAGRAP,cAGAGPER,.F.)
AG->AGAGRAP := cAGAGRAP
AG->AGHOOFD := IF(!cAGAGRAP,cAGHOOFD,.F.)
AG->AGAFGESL := IF(oOrig,.F.,cAGAFGESL)
AG->AGINGDAT := CTOD(cAGINGDAT)
AG->AGINGEVER := cAGINGEVER
AG->AGCHADAT := DATE()
AG->AGCHANGER := US->UAFKORT
AG->AGOUTLID := cAGOUTLID
AG->AGOUTLDAT := cAGOUTLDAT
AG->AGEXPORT := cAGEXPORT
AG->AGKM := cAGKM
AG->AGMEMO := cAGMEMO
ENDIF
RecUnLockJuda(2,PROCNAME(),PROCLINE())
EDossier := AG->AGDOSSIER
NEXTFOR Agi=1 TO AgTel
IF actie = "Insert"
UnAGCODE := SPACE(10)
FOR CreTel = 1 TO 100
CreRecA1 := 0
CreRecA1 := AddRecJuda()
IF CreRecA1 <> 0 .AND. EMPTY(AG->AGINGDAT) .AND. EMPTY(AG->AGINGEVER)
CreTel := 100
ENDIF
NEXT
IF CreRecA1 <> 0 .AND. CreRecA1 = AG->(RECCOUNT())
UnAGCODE := LeesAgUniek()
GOTO CreRecA1
OldPar[3] := RECNO()
ELSE
dRet := .F.
ENDIF
ENDIF
BT_ET_Contr("cAGBTIJD","cAGETIJD")
IF !cAGAGRAP
IF !EMPTY(cAGBTIJD) .AND. ALLTRIM(cAGBTIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGBTIJD","dAGBTIJD","cAGRTIJD","cNIETS1",.F.)
ELSE
dAGBTIJD := cAGBTIJD
ENDIF
IF !EMPTY(cAGETIJD) .AND. ALLTRIM(cAGETIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGETIJD","dAGETIJD","cAGRTIJD","cNIETS1",.T.)
ELSE
dAGETIJD := cAGETIJD
ENDIF
ENDIF
cAGRECORD := OldPar[3]
cAGDELETE := .F.
IF actie = "Update" .AND. CTOD(cAGDATUM) <> CTOD(pAGDATUM)
UnAGCODE := SPACE(10)
FOR CreTel = 1 TO 100
CreRecA1 := 0
CreRecA1 := AddRecJuda()
IF CreRecA1 <> 0 .AND. EMPTY(AG->AGINGDAT) .AND. EMPTY(AG->AGINGEVER)
CreTel := 100
ENDIF
NEXT
IF CreRecA1 <> 0 .AND. CreRecA1 = AG->(RECCOUNT())
UnAGCODE := LeesAgUniek()
GOTO CreRecA1
IF !MsgNoYes("U wijzigde de datum van dit agendapunt !!!" + CHR(13) + CHR(13) + "Moet dit agendapunt op de originele datum ook bewaard blijven ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
cAGDELETE := .T.
ENDIF
OldPar[3] := RECNO()
oOrig := .T.
ELSE
dRet := .F.
ENDIF
ENDIF
IF dRet .AND. RecLockJuda(2,PROCNAME(),PROCLINE(),2,TaalCode)
IF VAL(UnAGCODE) <> 0
AG->AGCODE := UnAGCODE
ENDIF
AG->AGUSER := &("cAGUSER" + STR(Agi,1,0))
AG->AGUSERN := &("cAGUSERN" + STR(Agi,1,0))
AG->AGUSERNS := &("cAGUSERNS" + STR(Agi,1,0))
AG->AGDOSKOP := cAGDOSKOP
NaamSamen("AG->AGDOSSIER",cAGDOS1,cAGDOS2,cAGSDOS)
SELECT DOSS
SET ORDER TO 5
SEEK(UPPER(ALLTRIM(AG->AGDOSSIER)))
IF FOUND()
cBKBEHE := DOSS->DBEHENR
ENDIF
SELECT AG
AG->AGBEHEER := cBKBEHE
cBKBEHE := SPACE(7)
AG->AGDATUM := CTOD(cAGDATUM)
AG->AGGROEP := cAGGROEP
AG->AGSRTNR := cAGSRTNR
AG->AGSRTNRN := cAGSRTNRN
AG->AGVERGNR := cAGVERGNR
AG->AGVERGNRN := cAGVERGNRN
IF !cAGAGRAP
IF !EMPTY(cAGBTIJD) .AND. ALLTRIM(cAGBTIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGBTIJD","dAGBTIJD","cAGRTIJD","cNIETS1",.F.)
ELSE
dAGBTIJD := cAGBTIJD
ENDIF
IF !EMPTY(cAGETIJD) .AND. ALLTRIM(cAGETIJD) <> ":" .AND. !EMPTY(cAGRTIJD) .AND. ALLTRIM(cAGRTIJD) <> "00:00" .AND. ALLTRIM(cAGRTIJD) <> ":"
UurVersch("cAGETIJD","dAGETIJD","cAGRTIJD","cNIETS1",.T.)
ELSE
dAGETIJD := cAGETIJD
ENDIF
ELSE
dAGBTIJD := "99:99"
dAGETIJD := "99:99"
ENDIF
AG->AGBTIJD := IF(!cAGAGRAP,IF(EMPTY(cAGBTIJD) .OR. ALLTRIM(cAGBTIJD)="00:00" .OR. ALLTRIM(cAGBTIJD)=":",PAR->STBTIJD,cAGBTIJD),"99:99")
AG->AGETIJD := IF(!cAGAGRAP,IF(EMPTY(cAGETIJD) .OR. ALLTRIM(cAGETIJD)="00:00" .OR. ALLTRIM(cAGETIJD)=":",PAR->STETIJD,cAGETIJD),"99:99")
AG->AGRTIJD := IF(EMPTY(cAGRTIJD) .OR. ALLTRIM(cAGRTIJD)="00:00" .OR. ALLTRIM(cAGRTIJD)=":","00:00",cAGRTIJD)
IF !cAGAGRAP
IF EMPTY(cAGRTIJD) .OR. ALLTRIM(cAGRTIJD)=":" .OR. ALLTRIM(cAGRTIJD) = "00:00" .OR. ALLTRIM(cAGRTIJD) = "99:99"
AG->AGERTIJD := 10000 + (Uur60To100(cAGETIJD) * 100)
ELSE
UurVersch("AG->AGETIJD","cAGERTIJD","AG->AGRTIJD",,.T.,.F.)
AG->AGERTIJD := 10000 + (Uur60To100(cAGERTIJD) * 100)
ENDIF
ELSE
AG->AGERTIJD := 0
ENDIF
AG->AGBCODE := UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(CTOD(cAGDATUM))+LEFT(dAGBTIJD,2)+RIGHT(dAGBTIJD,2))
AG->AGECODE := UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(CTOD(cAGDATUM))+LEFT(dAGETIJD,2)+RIGHT(dAGETIJD,2))
AG->AGBCODC := RIGHT(AG->AGBCODE,12)
AG->AGECODC := RIGHT(AG->AGECODE,12)
AG->AGOMSCH := cAGOMSCH
AG->AGALARM := IF(!cAGAFGESL,cAGALARM,.F.)
IF cAGALARM .AND. CTOD(cAGDATUM) <> CTOD(oAGDATUM)
IF oAANTDAG <> 0 .AND. MsgYesNo("Mag de alarmdatum in verhouding aangepast worden"+CHR(13)+"aan de ingegeven datum van het alarmpunt ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
AG->AGALDAG := CTOD(cAGDATUM) - oAANTDAG
ELSEIF MsgYesNo("Mag de alarmdatum aan de datum"+CHR(13)+"van het agendapunt aangepast worden ?","Kies "+CHR(34)+"JA"+CHR(34)+" of "+CHR(34)+"NEE"+CHR(34))
AG->AGALDAG := CTOD(cAGDATUM)
ENDIF
ELSE
AG->AGALDAG := IF(!cAGAFGESL .AND. cAGALARM,CTOD(cAGALDAG),CTOD(" / / "))
ENDIF
AG->AGALUUR := IF(!cAGAFGESL .AND. cAGALARM .AND. !EMPTY(cAGALUUR) .AND. ALLTRIM(cAGALUUR) <> ":",cAGALUUR,"99:99")
AG->AGALCODE := IF(!cAGAFGESL .AND. cAGALARM,UPPER(&("cAGUSER"+STR(Agi,1,0))+DTOS(AG->AGALDAG)+IF(AG->AGALUUR<>"99:99",LEFT(AG->AGALUUR,2)+RIGHT(AG->AGALUUR,2),"0000")),SPACE(19))
AG->AGVOORL := IF(!cAGAGRAP,cAGVOORL,.F.)
AG->AGPRNR := cAGPRNR
AG->AGPRNRN := cAGPRNRN
AG->AGANNR := cAGANNR
AG->AGANNRN := cAGANNRN
AG->AGMETWIE := cAGMETWIE
AG->AGAGDOS := IF(!cAGAGRAP,cAGAGDOS,.F.)
AG->AGAGKAN := IF(!cAGAGRAP,cAGAGKAN,.F.)
AG->AGAGPRO := IF(!cAGAGRAP,cAGAGPRO,.F.)
AG->AGAGPER := IF(!cAGAGRAP,cAGAGPER,.F.)
AG->AGAGRAP := cAGAGRAP
AG->AGHOOFD := IF(!cAGAGRAP,cAGHOOFD,.F.)
AG->AGAFGESL := IF(oOrig,.F.,cAGAFGESL)
AG->AGINGDAT := CTOD(cAGINGDAT)
AG->AGINGEVER := cAGINGEVER
AG->AGCHADAT := DATE()
AG->AGCHANGER := US->UAFKORT
AG->AGOUTLID := cAGOUTLID
AG->AGOUTLDAT := cAGOUTLDAT
AG->AGEXPORT := cAGEXPORT
AG->AGKM := cAGKM
AG->AGMEMO := cAGMEMO
ENDIF
RecUnLockJuda(2,PROCNAME(),PROCLINE())
EDossier := AG->AGDOSSIER
IF cAGDELETE .AND. cAGRECORD <> 0
GOTO cAGRECORD
IF RecLockJuda(2,PROCNAME(),PROCLINE(),2,TaalCode)
DELETE
ENDIF
RecUnLockJuda(2,PROCNAME(),PROCLINE())
cAGRECORD := 0
cAGDELETE := .F.
GOTO OldPar[3]
ENDIF
NEXTRegards,
Michel D.
Genk (Belgium)
I use : FiveWin for (x)Harbour v. 25.12 - Harbour 3.2.0 (May 2025) - xHarbour Builder (January 2020) - Bcc773
Michel,
Thanks! ![]()
I mentioned that a few of my clients had some problems but I do not have anything further.
I am doing a major revision / optimization to my application so I won't see if the problem still exists until early 2015. It may be cleared up as I check all of the code very carefully to be sure all files properly close at the correct time.
Tim
Michel,
That is very good advice from James. I'm glad you have solved your (our) problem.
Merry Christmas to Everyone.
David ![]()