Gets a field value using a record ID.
struct resbuf*
ade_odgetrecfield(
ade_id recID,
char* field);
Returns a field value (type varies) or NULL.
recID | Record ID returned by ade_odgetrecord. |
field | Field name. |
This function uses the record ID assigned by ade_odgetrecord to get the value of a particular field. This means of getting an object data field value is generally faster than any other.
You must release the resbuf.
The following sample creates a selection set of all entities in the current drawing using acedSSGet(). Each entity in the selection set is passed to ade_odgetrecord() which returns a record id. This record id along with other required parameters, are passed to ade_odgetrecfield() which stores its results in a resbuf which is displayed. Then it releases the resbuf, as required.
struct resbuf* pOdRecFieldRb = NULL; ads_name selectionSet; ads_name ename; char* pszOdTable = "table1"; char* pszOdField = "FIELD1"; int recnum = 0; acedSSGet("x", NULL, NULL, NULL, selectionSet); long ssLength; acedSSLength( selectionSet, &ssLength; ); ade_id recordId; for( int i = 0; i < ssLength; ++i ) { if( acedSSName(selectionSet, i, ename) == RTNORM ) { recordId = ade_odgetrecord(ename, pszOdTable, recnum); pOdRecFieldRb = ade_odgetrecfield(recordId, pszOdField); struct resbuf* rb = pOdRecFieldRb; while(rb != NULL) { acutPrintf( "\nThe current entity has %s object data with a %s value of: %s" , pszOdTable, pszOdField, rb->resval.rstring); rb = rb->rbnext; } } } acutRelRb(pOdRecFieldRb);