Consultor Eletrônico



Kbase P96282: Error 7331 when deleting records using the deleteRow function
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.x

SYMPTOM(s):

Error 7331 when deleting records using the deleteRow function

Deleting SmartDataObject records using the deleteRow() function

Cannot reposition query <name> to recid/rowid(s) given. (7331)

Cannot reposition query qDataQuery to recid/rowid(s) given. (7331)

RowObject was not found with ROWID <rowid>

RowObject ROWID is passed as the first parameter to the deleteRow function

CAUSE:

The deleteRow API completely ignored the Rowident parameter from version 9.1B to version 9.1D inclusive. This is no longer the case.
The visual data target's Rowident is different from the SmartDataObject Rowident since OpenEdge 10.0A.

FIX:

After the record is fetched in the SmartDataObject use:

DYNAMIC-FUNCTION('deleteRow':U IN <sdo-handle>, INPUT ?).
Version 10.0B has been improved to allow ? to be passed as the first parameter, to indicate that it is the current record to be updated.