crash with UDF-Index when ADD new Record
Posted: Sun Sep 01, 2024 10:41 am
hi,
i use a UDF-Index and it crash when add new Record
why it CRASH
i have try to disable CDX-Index using ORDSETFOCUS(0) when ADD new Record but it does now help.
what can i do
i use a UDF-Index and it crash when add new Record
Application Internal Error - C:\hmg.3.4.4\1\HBTEL\HBTEL.exe
Terminated at: 2024-09-01 12:17:25
Nicht zu behebender Fehler 9201: hb_cdxPageKeyIntBalance: index corrupted.
Called from ORDFOR(0)
Called from SETDATAGRIDRECNO(2204) in source\h_grid.prg
Called from SETPROPERTY(7969) in source\h_controlmisc.prg
Called from ADDNEWREC(2497) in C:\hmg.3.4.4\1\HBTEL\HBTEL.PRG
Called from (b)MAIN(321) in C:\hmg.3.4.4\1\HBTEL\HBTEL.PRG
Called from _DOCONTROLEVENTPROCEDURE(6033) in source\h_windows.prg
Called from EVENTS(1794) in source\h_windows.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694) in source\h_windows.prg
Called from MAIN(404) in C:\hmg.3.4.4\1\HBTEL\HBTEL.PRG
Code: Select all
2482 STATIC PROCEDURE AddNewRec()
2483
2484 LOCAL nRecNo
2485
2486 SELECT 1
2487 ORDSETFOCUS(0)
2488 APPEND BLANK
2489 * nRecNo := RECNO()
2490
2491 XPPTEL_Store()
2492 nRecNo := RECNO()
2493
2494 IF SP_Browse() = "BROWSE"
2495 SetProperty( "XPPTEL", "Browse_1", "value", nRecNo )
2496 ELSE
->2497 SetProperty( "XPPTEL", "Browse_1", "RecNo", nRecNo )
2498 ENDIF
Code: Select all
FUNCTION TNR2STR( value )
LOCAL RETVAR := ""
LOCAL nLen := LEN( value )
LOCAL nSoll := nLen
LOCAL i, nDiff
LOCAL cStr
FOR i = 1 TO nLen
cStr := SUBSTR( value, i, 1 )
IF cStr == CHR( 32 )
ELSE
RETVAR := RETVAR + cStr
ENDIF
NEXT
nDiff := nSoll - LEN( RETVAR )
FOR i = 1 TO nDiff
RETVAR := RETVAR + CHR( 32 )
NEXT
RETURN RETVAR
Code: Select all
PROCEDURE CreateCDX( cCodepage )
LOCAL _tagname, _keyfeld, _cdxname
USE XPPTEL.DBF VIA "DBFCDX" EXCLUSIVE CODEPAGE (cCodepage)
_cdxname := "XPPTEL.CDX" // "TELINDEX"
_tagname := "KDNAME" //zkdname 1
_KEYFELD := "UPPER(NAME1+NAME2)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "STADT" //zkdort 2
_KEYFELD := "UPPER(STADT+STRASSE)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "STRASSE" //zstrasse 3
_KEYFELD := "UPPER(STRASSE+STADT)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "GESCHTEL" //ztelefon 4
_KEYFELD := "TNR2STR(TELGES)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "FAX" //ztelfax 5
_KEYFELD := "TNR2STR(TELFAX)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "1_HANDY" // 6
_KEYFELD := "TNR2STR(HANDY1)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "2_HANDY" // 7
_KEYFELD := "TNR2STR(HANDY2)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "3_HANDY" // 8
_KEYFELD := "TNR2STR(ANHANDY)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "4_HANDY" // 9
_KEYFELD := "TNR2STR(PVHANDY)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "ANSPVOR" //zansprech 10
_KEYFELD := "UPPER(ANSPVOR+ANSPNACH)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "ANSPNACH" //zansprech 11
_KEYFELD := "UPPER(ANSPNACH+ANSPVOR)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "BRANCHE" //zbranche 12
_KEYFELD := "TKSEL+UPPER(NAME1)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "KUNDENNO" //zkdnr 13
_keyfeld := "TKDNR"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
_tagname := "ALLETELNO" //zkdnr 14
_keyfeld := "TNR2STR(VORTELE)+" + ;
"TNR2STR(TELGES) +" + ;
"TNR2STR(VORFAX) +" + ;
"TNR2STR(TELFAX) +" + ;
"TNR2STR(VORPRIV)+" + ;
"TNR2STR(TELPRI) +" + ;
"TNR2STR(HANDY1) +" + ;
"TNR2STR(HANDY2) +" + ;
"TNR2STR(ANHANDY)+" + ;
"TNR2STR(PVVORT1)+" + ;
"TNR2STR(PVTEL1) +" + ;
"TNR2STR(PVVORF1)+" + ;
"TNR2STR(PVFAX1) +" + ;
"TNR2STR(PVHANDY)"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
CLOSE
RETURN

i have try to disable CDX-Index using ORDSETFOCUS(0) when ADD new Record but it does now help.
what can i do
