Logo Search packages:      
Sourcecode: maxdb-7.5.00 version File versions

void SysView_PascalTableObj::MoveToLongColContainer ( const void *  pBuf,
int  bufLenght 
) [virtual]

This function moves a long record to a long col container, i.e. stores a long value into a sequence of rows.

Parameters:
pBuf pointer to the buffer containing the value
bufLength the length of the value in bytes
Returns:
none

Implements SysView_ITableObj.

Definition at line 551 of file SysView_PascalTableObj.cpp.

References SQLMan_Context::GetPseudoLongHandler(), SysView_PseudoLongHandler::InsertLong(), and SysView_Trace.

{
    SAPDBTRACE_METHOD_DEBUG ("SysView_PascalTableObj::MoveToLongColContainer", SysView_Trace, 5);

    SysView_PseudoLongHandler::LongIdentificator longId;
    // copy value into pseudo long file
    m_Context.GetPseudoLongHandler().InsertLong(m_Context, pBuf, bufLength, longId);

    // put long descriptor
    tak_long_descriptor longDesc;
    memset (&longDesc, 0, sizeof(longDesc));
    memcpy(&longDesc.lds_descriptor(), &longId, sizeof(longDesc.lds_descriptor()));
    longDesc.lds_maxlen() = 0;
    longDesc.lds_show_kind().becomes(sh_pseudo_long);
    longDesc.lds_state().addElement(ld_short_scol);
    longDesc.lds_intern_pos() = 1;
    longDesc.lds_infoset().addElement(ld_is_catalog);
    longDesc.lds_colno()      = longId.m_rowCount;
    longDesc.lds_valmode().becomes(vm_nodata);
    longDesc.lds_valpos()     = -1;
    longDesc.lds_vallen()     = -1;
    // move long descriptor into current row
    a40move (m_Context, m_Show, &longDesc, sizeof(longDesc));
}


Generated by  Doxygen 1.6.0   Back to index