Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdbClass::InitMember | (const hzString&,const hdbDatatype*,hdbPopCtl,) |
Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp
Function Logic:
Function body:
hzEcode hdbClass::InitMember (const hzString& mbrName, const hdbDatatype* pType, hdbPopCtl popCtl) { _hzfunc("hdbClass::InitMember(1)") ; const hdbClass* pSub ; hdbMember* pMbr ; hzString S ; hzEcode rc ; if (m_eClassInit != HDB_CLASS_INIT_PROG) return hzerr(E_INITFAIL, "Init state %d Called out of sequence (must be after InitStart() and before InitDone()", m_eClassInit) ; if (!m_pADP) return hzerr(E_NOINIT, "No Host ADP Found") ; if (!mbrName) return hzerr(E_ARGUMENT, "No member name supplied") ; if (!pType) return hzerr(E_ARGUMENT, "No member data type supplies for %s", *mbrName) ; if (GetMember(mbrName)) return hzerr(E_INITDUP, "Member (%s) already defined", *mbrName) ; pMbr = new hdbMember() ; if (!pMbr) return hzerr(E_MEMORY, "Member allocation") ; rc = pMbr->Init(this, pType, mbrName, m_arrMembers.Count(), popCtl) ; if (rc != E_OK) return hzerr(rc, "Please examine arguments for column [%s]", *mbrName) ; m_mapMembers.Insert(mbrName, pMbr) ; m_pADP->RegisterMember(pMbr) ; m_mapMembers.Insert(mbrName, pMbr) ; m_arrMembers.Add(pMbr) ; threadLog("Added member %s (of %d) to class %s\n", *mbrName, MbrCount(), txtType()) ; if (pMbr->IsClass()) { pSub = (const hdbClass*) pMbr->Datatype() ; m_pADP->NoteSub(strType(), pSub) ; } if (pMbr->Basetype() == BASETYPE_BINARY || pMbr->Basetype() == BASETYPE_TXTDOC) m_nBinaries++ ; if (pMbr->Multiple()) m_nArrays++ ; m_eClassInit = HDB_CLASS_INIT_PROG ; return E_OK ; }