viernes, noviembre 28, 2008

Code is Poetry

 proc TraeValByRawValores { attrName rawValores } {
        variable nn
        set pn "${nn}::TraeValByRawValores"

        variable attrDefs
        set def $attrDefs($attrName)
        set ekeys [keylTrae def _]
        set ftype {}
        keylTrae def ftype ftype

        if { {} == $ekeys && {} == $ftype } {
            set val {}
            keylset val _ [lindex $rawValores 0]
        } elseif { {} == $rawValores } {
            set val {}
        } else {
            variable rows
            variable rowNums

            if { {} == $ekeys } {
                set ekey [list [keylTrae def ftab]\
                    [eval list "$ftype $rawValores"]]
            } else {
                set ekey [list [keylTrae def ftab] [eval list $rawValores]]
            }

            set val [TraeCachedRow $ekey rowNum]

            set imp {}
            keylTrae val imp imp
            if { {} == $imp } {
                keylset val imp -
                set rows($rowNum) $val
            }

            set db {}
            keylTrae val db db

            if { {} == $db } {
                set rec [loadRecFromDb $def $rawValores]
                if { {-} == $rec } {
                    keylset val db -
                    set rows($rowNum) $val
                } else {
                    cacheDbRecs [keylTrae def ftab] [list $rec]
                    set val $rows($rowNum)
                    keylTrae val db db
                    if { {} == $db } {
                        keylset val db $rec
                    }
                }
            }

        }

        return $val
    } ;# TraeValByRawValores



Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

No hay comentarios.: