BEA Logo BEA Tuxedo Release 7.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy


   Tuxedo Doc Home   |   Reference   |   Topic List   |   Previous   |   Next   |   Contents

   BEA Tuxedo FML Function Reference

Fprojcpy, Fprojcpy32(3fml)


Fprojcpy(), Fprojcpy32() - projection and copy on buffer


#include <stdio.h> 
#include "fml.h"

Fprojcpy(FBFR *dest, FBFR *src, FLDID *fieldid)

#include "fml32.h"

Fprojcpy32(FBFR32 *dest, FBFR32 *src, FLDID32 *fieldid)


Fprojcpy() is similar to Fproj() but the projection is done into a destination buffer instead of in-place. dest and src are pointers to the destination and source fielded buffers respectively. fieldid is a pointer to an array of field identifiers. Any fields in the destination buffer are first deleted and the results of the projection on the source buffer are put into the destination buffer. The source buffer is not changed. The array of field identifiers may be re-arranged. (If they are not already in numeric order, they are sorted.) If updating buffers results in the removal of a FLD_PTR field, the memory area referenced by the pointer is not modified or freed.

This function can fail for lack of space; it can be re-issued after allocating enough additional space to complete the operation.

Fprojcpy32() is used with 32-bit FML.

A thread in a multithreaded application may issue a call to Fprojcpy() or Fprojcpy32() while running in any context state, including TPINVALIDCONTEXT.

Return Values

This function returns -1 on error and sets Ferror to indicate the error condition.


Under the following conditions, Fprojcpy() fails and sets Ferror to:


"fielded buffer not aligned"
Either the source buffer or the destination buffer does not begin on the proper boundary.


"buffer not fielded"
Either the source buffer or the destination buffer is not a fielded buffer or has not been initialized by Finit().


"no space in fielded buffer"
A field value is to be copied to the destination fielded buffer but there is not enough space remaining in the buffer.

See Also

Introduction to FML Functions, Fjoin, Fjoin32(3fml), Fojoin, Fojoin32(3fml), Fproj, Fproj32(3fml)