>>Does anyone know if GETNEXTMODIFIED() detects the addition of (maybe several) records to a buffered table, obviously, before TableUpdate() is issued?
>>
>>The new records will have had fields filled in before saving.
>>
>>'ppreciate it
>>
>>Terry
>
>Hey Terry,
>It's all about GetNextModified() :)
>ie:
>
>lnNext = GetNextModified(0)
>do while m.lnNext # 0
> go m.lnNext
> if m.lnNext < 0
>*...
> else
>*...
> endif
> lnNext = GetNextModified(m.lnNext)
>enddo
>
Cetin
Thank you, Cetin & Boris
Thing is, I don't want to manufacture the save code. I've already got a class save method snippet from way, way back - half inherited and half altered by me, as follows:
CASE Not lInDBC AND (ATC("2", GetFldState(-1)) <> 0 OR ATC("3", GetFldState(-1)) <> 0)
lnModRecord = GetNextMod(0)
DO WHILE lnModRecord <> 0
GO lnModRecord
llSuccess = RLOCK()
IF Not llSuccess
lcErrorMessage = "Record in use by another user"
UNLOCK ALL
EXIT
EndIf
IF Not llHadMessage
FOR lnFldCnt = 1 TO FCOUNT()
IF TYPE(FIELD(lnFldCnt)) = "G"
LOOP
ENDIF
IF OLDVAL(FIELD(lnFldCnt)) <> CURVAL(FIELD(lnFldCnt))
llHadMessage = .T.
IF sysConfirm("The record has been changed by another user while you've been editing it. " + ;
"Do you want to overwrite the other user's changes with your own?")
llOverwrite = .T.
ELSE
llSuccess = .F.
UNLOCK ALL
EXIT
ENDIF
ENDIF OLDVAL()
ENDFOR
ENDIF Not llHadMessage
lnModRecord = GetNextMod(lnModRecord)
ENDDO
but afaik it's only been used to save one new rec at at time, as in a standard form new - input data - save scenario. In this case I create one record then maybe 3-4 "sister" recs and need to save them all together, or none at all, and it can't be done in a transaction, as theyt're free 2.6 tables. I feel that the above code would do just that. What do you think?
- Whoever said that women are the weaker sex never tried to wrest the bedclothes off one in the middle of the night
- Worry is the interest you pay, in advance, for a loan that you may never need to take out.