Is there a way to perform an %Prepare()/%Execute() that will wait until the record being queried is unlocked by another process?  Ex:  Process 1 - is opening record, updating, then saving. NOTE: this is using embedded SQL
&sql(<span class="sql"><span class="hljs-keyword">SELECT</span> %<span class="hljs-keyword">ID</span> <span class="hljs-keyword">INTO</span> :<span class="hljs-keyword">id</span> <span class="hljs-keyword">FROM</span> <span class="hljs-keyword">table</span> <span class="hljs-keyword">WHERE</span> Prop=:prop</span>)
<span class="hljs-keyword">s</span> obj=<span class="hljs-keyword">##class</span>(APPTRACKER.CacheHB.CustomEventCacheHB).<span class="hljs-built_in">%OpenId</span>(eventId)
<span class="hljs-comment">//updating record...</span>
<span class="hljs-keyword">s</span> sc=obj.<span class="hljs-built_in">%Save</span>()
Process 2 - is querying the same record while Process 1 has it open. Result is nothing is returned and %SQLCODE is 0</p>
&lt;span class="hljs-comment">//simplified snippet with extra code removed&lt;/span>
    ...
    &lt;span class="hljs-keyword">s&lt;/span> sql = &lt;span class="hljs-keyword">##class&lt;/span>(&lt;span class="hljs-built_in">%SQL.Statement&lt;/span>).&lt;span class="hljs-built_in">%New&lt;/span>()
    &lt;span class="hljs-keyword">s&lt;/span> sc=sql.&lt;span class="hljs-built_in">%Prepare&lt;/span>(&lt;span class="hljs-string">"SELECT TOP 1 * FROM class WHERE Prop='"&lt;/span>_prop_&lt;span class="hljs-string">"'"&lt;/span>)
    i &lt;span class="hljs-built_in">$$$ISOK&lt;/span>(sc) {
        &lt;span class="hljs-keyword">s&lt;/span> rset = sql.&lt;span class="hljs-built_in">%Execute&lt;/span>()
        i 'rset.&lt;span class="hljs-built_in">%SQLCODE&lt;/span> {
            i rset.&lt;span class="hljs-built_in">%Next&lt;/span>() {
                &lt;span class="hljs-keyword">s&lt;/span> propVal=rset.&lt;span class="hljs-built_in">%Get&lt;/span>(prop)
            }
        }
    }

 

</body></html>