Delete with dynamic buffer on Appserver

emnu

Member
Hi,

I few days agoo i've send a mail concerning an update on appserver with a dynamic buffer. solution was to wrap transaction around the buffer-copy.
Now i have the same problem with a delete, even with the rans wrapped around the buffer-delete, the delete still isn't executed on the server side.

DEF INPUT PARAM TABLE-HANDLE hRowObjUpd_AI.
DEF OUTPUT PARAM cRet AS CHAR NO-UNDO.

DEF VAR bhDeleteDB AS HANDLE NO-UNDO.
DEF VAR fhRowObjUpd_AI AS HANDLE EXTENT 100 NO-UNDO.
DEF VAR rRowid AS ROWID NO-UNDO.
DEF VAR qhRowObjUpd_AI AS HANDLE NO-UNDO.
DEF VAR lhTempTable AS HANDLE NO-UNDO.
DEF VAR lRet AS LOG NO-UNDO.


/* holds record to delete */
bhDeleteDB = hRowObjUpd_AI:DEFAULT-BUFFER-HANDLE.

CREATE QUERY qhRowObjUpd_AI.
qhRowObjUpd_AI:SET-BUFFERS(bhDeleteDB).
qhRowObjUpd_AI:QUERY-PREPARE("for each ttTable":U).
qhRowObjUpd_AI:QUERY-OPEN().
qhRowObjUpd_AI:GET-FIRST(NO-LOCK).


/* get rowid to delete */
DO i = 1 TO bhDeleteDb:NUM-FIELDS:
fhRowObjUpd_AI = bhDeleteDb:BUFFER-FIELD(i).
IF fhRowObjUpd_AI:NAME = "RowIdent" THEN rRowid = fhRowObjUpd_AI:BUFFER-VALUE.
END.


/* search in db for record to delete */
bhTable:FIND-BY-ROWID(rRowid) NO-ERROR.

/* delete the buffer, so also on db */
IF ERROR-STATUS:ERROR THEN
DO:
DO i = 1 TO ERROR-STATUS:NUM-MESSAGES:
ERROR-STATUS:GET-NUMBER(i).
cRet = cRet + " <1> " + ERROR-STATUS:GET-MESSAGE(i) + " ":U + CHR(13) + CHR(10).
END.
END. ELSE DO:
lRet = TRUE.
IF bhTable:AVAILABLE THEN
DO TRANSACTION:
lRet = bhTable:BUFFER-DELETE.
END.
cRet = cRet + STRING(lRet) + CHR(13) + CHR(10).
END.


qhRowObjUpd_AI:QUERY-CLOSE().
DELETE OBJECT qhRowObjUpd_AI.
bhDeleteDB:BUFFER-RELEASE.

lhTempTable = bhDeleteDB:TABLE-HANDLE.
DELETE OBJECT lhTempTable.

Any Clue ?

Thanx For any Response.
 
Top