OK, just some thoughts. I throw them over to You and maybe one of them accidentaly hits the target
I'm not sure, I can do with this "Live" version and we never were able
to reproduce this problem on Development ...Is the database on the live-system OK? Indices no corrupt indices?
Sometimes the error message pops up immediatelly after they click on the textbox in the gridIs it the AfterRowColChange-Event? if so, Do You get the error at the "replace..." or the
".RequeryGridSources()"
I don't know if this is still valid (and if this would make a differnece at all) but I rember
"Lockscreen" to be kind of additive. In some cases You will have two .Lockscreen=.T. in a row
but only one .Lockscreen=.F.
Maybe You can put the lockscreen-pair one level down (underneath the
if this.nCurRec<>m.lnRecno) so that they do not fire if you simply change columns.
You are moving the record-Pointer within the AfterRowColChange, I'm not sure if this is not causing
another AfterRowColChange
Are You sure, You're not addressing a record in another datasession?
Did You try something like this
if ! LockR()
wait window "Oooops..."
else
replace (.AddrField) with '6', ModiType with 'C'
unlock
endif
where lockR is a construction like that
PROCEDURE LockR
lparameters tc_Alias
LOCAL ln_WasRepro, ln_INKey
ln_WasRepro = set("REPROCESS")
tc_Alias = iif(empty(tc_Alias), alias(), tc_Alias)
set REPROCESS to 1
if rlock(tc_Alias)
set REPROCESS to (ln_WasRepro)
return .T.
endif
clear typeahead
ln_Inkey = inkey(1)
do while ln_Inkey <> 27 and not rlock(tc_Alias)
ln_Inkey = inkey(1)
enddo
set REPROCESS to (ln_WasRepro)
return ln_Inkey <> 27
You are moving the pointer and addressing the fields always
with the IN - clause but You do the REPLACE without selecting
the alias or using IN there. You should be on the right alias
as You are in the grid, but still I would make sure.
In this particular application users work with buffered table directlywhere and when does the saving take place? - On the other hand, I don't think
that makes a difference here.
This is for the first impressions, I'll see if more rubbish comes to my mind