Return TypeFunction nameArguments
hzEcodehdbClass::InitMember(const hzString&,const hdbDatatype*,hdbPopCtl,)

Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp

Function Logic:

0:START 1:m_eClassInit!=HDB_CLASS_INIT_PROG 2:Return hzerr(E_INITFAIL,Init state %d Called out of sequence (must be after InitStart() and before InitDone(),m_eClassInit) 3:!m_pADP 4:Return hzerr(E_NOINIT,No Host ADP Found) 5:!mbrName 6:Return hzerr(E_ARGUMENT,No member name supplied) 7:!pType 8:Return hzerr(E_ARGUMENT,No member data type supplies for %s,*mbrName) 9:GetMember(mbrName) 10:Return hzerr(E_INITDUP,Member (%s) already defined,*mbrName) 11:pMbr 12:!pMbr 13:Return hzerr(E_MEMORY,Member allocation) 14:hzArray::Count hdbMember::Init rc 15:rc!=E_OK 16:Return hzerr(rc,Please examine arguments for column [%s],*mbrName) 17:hzMapS::Insert hdbADP::RegisterMember hzMapS::Insert hzArray::Add hdbClass::MbrCount hdbDatatype::txtType hdbMember::IsClass 18:pMbr->IsClass() 19:hdbMember::Datatype pSub hdbDatatype::strType hdbADP::NoteSub 20:pMbr->Basetype()==BASETYPE_BINARY||pMbr->Basetype()==BASETYPE_TXTDOC 21:items hdbMember::Multiple 22:pMbr->Multiple() 23:items 24:m_eClassInit 25:Return E_OK

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 ;
}