.. _dpiObjectAttrFunctions:
ODPI-C Object Attribute Functions
---------------------------------
Object attribute handles are used to represent the attributes of types such as
those created by the SQL command CREATE OR REPLACE TYPE. They are created by
calling the function :func:`dpiObjectType_getAttributes()` and are destroyed
when the last reference is released by calling the function
:func:`dpiObjectAttr_release()`.
.. function:: int dpiObjectAttr_addRef(dpiObjectAttr \*attr)
Adds a reference to the attribute. This is intended for situations where a
reference to the attribute needs to be maintained independently of the
reference returned when the attribute was created.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
**attr** [IN] -- the attribute to which a reference is to be added. If the
reference is NULL or invalid an error is returned.
.. function:: int dpiObjectAttr_getInfo(dpiObjectAttr \*attr, \
dpiObjectAttrInfo \*info)
Returns information about the attribute.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
**attr** [IN] -- a reference to the attribute whose information is to be
retrieved. If the reference is NULL or invalid an error is returned.
**info** [OUT] -- a pointer to a
:ref:`dpiObjectAttrInfo<dpiObjectAttrInfo>` structure which will be
populated with information about the attribute.
.. function:: int dpiObjectAttr_release(dpiObjectAttr \*attr)
Releases a reference to the attribute. A count of the references to the
attribute is maintained and when this count reaches zero, the memory
associated with the attribute is freed.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
**attr** [IN] -- the attribute from which a reference is to be released. If
the reference is NULL or invalid an error is returned.