project BLF > class Persistence (other) > method MainBlock

Description

Connect all necessary databases (found in server.ini).


Parameters


ihClassinputhandleHandle to the business class that is using the persistence layer. In most of the cases, this handle will be available in the preprocessor {&TARGETPROCEDURE}.
icDBMSinputcharacterDatabase type. Must refer to a registered DLL with the correct function to access a database of that type.
oiReturnStatusoutputintegerReturn status


Internal usage


unused


program code (program1/other.p)

/* Convert DBMS to dll name */
    if icDBMS = "Oracle":U
    then assign icDBMS = "plOracle.dll":U.
    else if icDBMS = "MSSQL":U
    then assign icDBMS = "plMSSQL.dll":U.
    
    <M-5 run DoLoadDLL (input  ihClass (ihClass), 
                    input  icDBMS (icDLLname), 
                    output oiReturnStatus (oiReturnStatus)) in other>
    if oiReturnStatus <> 0
    then return.

    /* Connect all databases listed in server.xml */
    assign oiReturnStatus = -5
           vcIniPath      = search ("server.xml":U)
           vcUserId       = "".
    if vcIniPath = ?
    then do:
        assign vhPdatabaseInst = ihClass.
        <M-3 run SetMessage
           (input  #T-1'The server.xml file was not found.':100(5014)T-1# (icMessage), 
            input  '' (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'D':U (icType), 
            input  1 (iiSeverity), 
            input  '' (icRowid), 
            input  'BLF-363':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in database>
        return.
    end.
    
    assign vhFcComponent = ?.
    <M-6 run MainBlock
       () in XML>
    assign vhXMLhandle = vhFcComponent.
    
    <M-7 run ReadXML
       (input  vcIniPath (icXMLFile), 
        input  'databases':U (icStartTag), 
        output tNodesPL (tNodes), 
        output viFcReturnSuper (oiReturnStatus)) in XML>        
    run gipr_DeleteProcedure in vhXMLhandle.
    delete procedure vhXMLHandle.
    if viFcReturnSuper <> 0
    then assign oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0
    then return.
    
    For Each tNodesPL By tNodesPL.tiNodeId:
    
        If tNodesPL.tcNodeName = "Name":U
        Then Assign vcDBName = tNodesPL.tcNodeValue.
        Else If tNodesPL.tcNodeName = "Parameters":U
        Then Assign vcDBConnect = tNodesPL.tcNodeValue.
        Else If tNodesPL.tcNodeName = "UserId":U
        Then Assign vcUserId = tNodesPL.tcNodeValue.
        Else If tNodesPL.tcNodeName = "Password":U
        Then Assign vcPassword = tNodesPL.tcNodeValue.
        
    End. /*For Each tNodesPL By NodesPL.tiNodesId:*/
    
    if vcDbName <> ""
    then do:
        <M-4 run ConnectDB (input  vcDBName (icDB), 
                    input  vcDBConnect (icConnect), 
                    input  ihClass (ihClass), 
                    output viFcReturnSuper (oiReturnStatus)) in other>
        if viFcReturnSuper < 0
        then do:
            assign oiReturnStatus = viFcReturnSuper.
            return.
        end.
    end.
    
    assign oiReturnStatus = 0.
    
END PROCEDURE.

&scoped SQLPROCDEF EXTERNAL "scsqlpl.dll" CDECL PERSISTENT

PROCEDURE GetPID {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE LoadDLL {&SQLPROCDEF}:
    define input  parameter icDllName as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufAddField {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter icName as character.
    define input  parameter icType as character.
    define input  parameter iiIsKey as long.
    define output parameter oiFieldId as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufCreate {&SQLPROCDEF}:
    define input  parameter icTable as character.
    define output parameter oiBufId as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufDestroy {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufGetRowid {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define output parameter omRowid as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufInsertRow {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufWriteData {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter icMode as character.
    define input  parameter icRowid as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlBufWriteDirect {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter icPrepare as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlCheckExistence {&SQLPROCDEF}:
    define input  parameter icPrepare as character.
    define output parameter oiPValue as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlCleanup {&SQLPROCDEF}:
END PROCEDURE.

PROCEDURE SqlCleanUpState {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlClearError {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlCloseDebugFile {&SQLPROCDEF}:
END PROCEDURE.

PROCEDURE SqlColGetAsString {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter omPValue as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetBool {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter oiPValue as handle to long.
    define output parameter oiPStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetDate {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter oiPValue as handle to long.
    define output parameter oiPStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetDecimal {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter omPValue as handle to long.
    define output parameter oiPStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetInteger {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter oiPValue as handle to long.
    define output parameter oiPStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetName {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter omPName as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetString {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter omPValue as handle to long.
    define output parameter oiPStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlColGetType {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiColId as long.
    define output parameter oiPType as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlConnect {&SQLPROCDEF}:
    define input  parameter icServer as character.
    define input  parameter icDatabase as character.
    define input  parameter icUser as character.
    define input  parameter icPassword as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlDate2Int {&SQLPROCDEF}:
    define input  parameter iiY as long.
    define input  parameter iiM as long.
    define input  parameter iiD as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlDebugWrite {&SQLPROCDEF}:
    define input  parameter icText as character.
    define input  parameter iiLinefeed as long.
END PROCEDURE.

PROCEDURE SqlDisconnect {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlExecuteCmd {&SQLPROCDEF}:
    define input  parameter icSql as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlExtCtrlDel {&SQLPROCDEF}:
    define input  parameter iiObjectId as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlExtCtrlGet {&SQLPROCDEF}:
    define input  parameter iiObjectId as long.
    define output parameter omData as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlExtCtrlSet {&SQLPROCDEF}:
    define input  parameter iiObjectId as long.
    define input  parameter icData as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlFldSetInteger {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter iiFldId as long.
    define input  parameter ilUpdated as long.
    define input  parameter iiValue as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlFldSetNull {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter iiFldId as long.
    define input  parameter ilUpdated as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlFldSetString {&SQLPROCDEF}:
    define input  parameter iiBufId as long.
    define input  parameter iiFldId as long.
    define input  parameter ilUpdated as long.
    define input  parameter icValue as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlGetError {&SQLPROCDEF}:
    define output parameter omPErrorMsg as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlGetSequence {&SQLPROCDEF}:
    define input  parameter icSeqName as character.
    define input  parameter iiIncrement as long.
    define output parameter oiValue as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlGetTransaction {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlInitialize {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlInt2Date {&SQLPROCDEF}:
    define input  parameter iiJd as long.
    define output parameter oiY as handle to long.
    define output parameter oiM as handle to long.
    define output parameter oiD as handle to long.
END PROCEDURE.

PROCEDURE SqlLoadInstanceBegin {&SQLPROCDEF}:
    define input  parameter iiInstanceId as long.
    define input  parameter icName as character.
    define output parameter oiStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlLoadInstanceEnd {&SQLPROCDEF}:
    define input  parameter ilInUse as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlLoadInstanceNext {&SQLPROCDEF}:
    define input  parameter imBuf as memptr.
    define input  parameter iiSize as long.
    define output parameter oiStatus as handle to long.
    define output parameter oiEof as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlOpenDebugFile {&SQLPROCDEF}:
    define input  parameter icFile as character.
END PROCEDURE.

PROCEDURE SqlParSetDate {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiParamId as long.
    define input  parameter iiNumdays as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlParSetInteger {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiParamId as long.
    define input  parameter iiValue as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlParSetNull {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiParamId as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlParSetRaw {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiParamId as long.
    define input  parameter imData as memptr.
    define input  parameter iiSize as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlParSetString {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiParamId as long.
    define input  parameter icValue as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryAddParameters {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter iiNumParams as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryCreate {&SQLPROCDEF}:
    define input  parameter icSql as character.
    define output parameter oiCmdId as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryDestroy {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryExecute {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define output parameter oiPNumCols as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryMoveNext {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define output parameter oiNumRows as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryOpen4GL {&SQLPROCDEF}:
    define input  parameter icTables as character.
    define input  parameter icPrepare as character.
    define input  parameter iiMaxNumber as long.
    define input  parameter icLastRowid as character.
    define input  parameter icFieldConvert as character.
    define input  parameter icCustomFields as character.
    define input  parameter iiIlDistinct as long.
    define output parameter oiCmdId as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryOpenTable {&SQLPROCDEF}:
    define input  parameter icTableName as character.
    define input  parameter icPrepare as character.
    define input  parameter icFieldList as character.
    define output parameter oiCmdId as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlQryPrepare {&SQLPROCDEF}:
    define input  parameter iiCmdId as long.
    define input  parameter icSql as character.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlSaveInstanceBegin {&SQLPROCDEF}:
    define input  parameter iiInstanceId as long.
    define input  parameter icName as character.
    define output parameter oiStatus as handle to long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlSaveInstanceEnd {&SQLPROCDEF}:
    define input  parameter iiOk as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlSaveInstanceNext {&SQLPROCDEF}:
    define input  parameter imBuf as memptr.
    define input  parameter iiSize as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlSetDateFormat {&SQLPROCDEF}:
    define input  parameter icFormat as character.
    define input  parameter iiSeparator as long.
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlSetDebugMode {&SQLPROCDEF}:
    define input  parameter iiDebugBits as long.
END PROCEDURE.

PROCEDURE SqlTerminate {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlTransactionAbort {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlTransactionCommit {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE SqlTransactionStart {&SQLPROCDEF}:
    define return parameter oiReturnStatus as long.
END PROCEDURE.

PROCEDURE UnloadDLL {&SQLPROCDEF}:
END PROCEDURE.

PROCEDURE pDummy: