project BLF > class BScanDaemon > method CalcAllScanDaemonLocationInfo

query calculated fields procedure

Description

Assign a value to query calculated fields


Parameters


iiCompanyIdinputintegerCompany id
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
query ScanDaemonLocationInfo


program code (program1/bscandaemon.p)

<M-1 run MainBlock  () in XML>
<M-2 run ReadXMLNodeValue
   (input  search('server.xml') (icXMLFile), 
    input  'serverConfiguration' (icStartTag), 
    input  'ENVROOT' (icNodeTag), 
    output vcenvroot (ocNodeValue), 
    output viFcReturnSuper (oiReturnStatus)) in XML>
run gipr_deleteprocedure in vhFcComponent.
delete procedure vhFcComponent.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

create query vhQuery in widget-pool "non-persistent".
vhQuery:forward-only = yes.
vhQuery:set-buffers(ih_Buffer).

if  vcenvroot <> ""
and vcenvroot <> ?
then do:
    vhQuery:query-prepare("for each " + ih_Buffer:table).
    vhQuery:query-open().
    vhQuery:get-first().
    do while not vhQuery:query-off-end:
        assign {&tcScanDaemonLocationDir} = replace({&tcScanDaemonLocationDir},"$ENVROOT",vcenvroot).
        vhQuery:get-next().
    end.
    vhQuery:query-close().
end.

if iiCompanyId = ?
then do:
    vhQuery:query-prepare("for each " + ih_Buffer:table + " where tiCompany_ID = 0").
    vhQuery:query-open().
    vhQuery:get-first().
    if not vhQuery:query-off-end
    then do:
        create buffer vhQBuffer for table ih_Buffer:table-handle in widget-pool "non-persistent".
        <Q-19 run CompanyByAll (all) (Read) (NoCache)
           (input 0, (CompanyId)
            input '', (CompanyCode)
            input true, (CompanyIsActive)
            output dataset tqCompanyByAll) in BCompany>
    end.
    do while not vhQuery:query-off-end:
        for each tqCompanyByAll:
            vhQBuffer:buffer-create().
            assign vhQBuffer::tiBusComponent_ID       = ih_Buffer::tiBusComponent_ID
                   vhQBuffer::tcBusComponentCode      = ih_Buffer::tcBusComponentCode
                   vhQBuffer::tiCompany_ID            = tqCompanyByAll.tiCompany_ID
                   vhQBuffer::tcScanDaemonLocationDir = ih_Buffer::tcScanDaemonLocationDir
                                                      + (if opsys = "UNIX" then "/" else "~\")
                                                      + tqCompanyByAll.tcCompanyCode.
            vhQBuffer:buffer-release().
        end.
        ih_Buffer:buffer-delete().
        vhQuery:get-next().
    end.
    vhQuery:query-close().
end.

delete object vhQuery.
if vhQBuffer <> ?
then delete object vhQBuffer.