What causes an Error 78 and/or sometimes "phantom" records in a browse?

Our issue, which is caused by the same problem (Storage variables defined to store the POSITION(file.key) etc are not large enough @1024 characters.

The problem I had was with Browses that would have a column that is defined fairly large on the backend (In this case VARCHAR(512). Upon clicking the header to sort the browse in the order of that column, when I scrolled the scroll bar, we would see multiple rows with the same data.

This of course is a classic symptom of not using the pk filed in sort orders, however in our case we were using the primary field, so we could rule that out.

After searching the CLW’s, INC’s and TPx files I modified any local variables that were used to store position in the classes to ANY. There are also some fields in queues that needed modifying of their size.

Going through my diff’s these are the changes I made to correct this error.

###ABBrowse.clw
#####BrowseClass.ResetQueue PROCEDURE(BYTE RefreshMode)
HighlightedPosition  from STRING(1024) to ANY

#####BrowseClass.UpdateViewRecord    PROCEDURE
Pos from STRING(1024) to ANY

###ABFile.CLW
#####FileManager.UpdateServer PROCEDURE(BYTE HandleError)
HOLD from STRING(1024) to ANY

#####RelationManager.Delete PROCEDURE(BYTE Query)
Current:Position from STRING(1024) to ANY

###abvcrfrm.inc
VewPosition  from String(1024) to  STRING(10000)     

###ABVCRFRM.CLW

#####FormVCRClass.CheckBorders  
LastRecordPosition  from STRING(1024) to ANY

#####FormVCRClass.Fetch
LastRecordPosition from STRING(1024) to ANY

###ABTblSyn.INC
DeletedRecordsQueue QUEUE,TYPE
RecordPosition           STRING(10000)

###ABWindow.Inc
LastInsertedPosition from STRING(1024) to ANY

###ABBrowse.TPW

Change
INSERT(%MakeField, 'ViewPosition', '', 'STRING(1024)','Entry''s view position')
To
INSERT(%MakeField, 'ViewPosition', '', 'STRING(10000)','Entry''s view position')

###ABRELTRE.TPW
change occurs in two places
From
%[20]ValueConstruct STRING(1024)                #<! Record POSITION in VIEW
To
%[20]ValueConstruct STRING(10000)                #<! Record POSITION in VIEW

These are the changes I can find, put please post here if you find any more.

3 Likes