Difference between revisions of "OBJECT GETARG()"
Yvonnemilne (Talk | contribs) |
Yvonnemilne (Talk | contribs) |
||
Line 82: | Line 82: | ||
==SEE ALSO== | ==SEE ALSO== | ||
− | [[DEFINE_CLASS()]], [[DEFINE_METHOD()]], [[DEFINE_PROPERTYGET()]], [[DEFINE_PROPERTYSET()]], [[DISPATCH_FACTORY()]], [[DISPATCH_METHOD()]], [[DISPATCH_PROPGET()]], [[DISPATCH_PROPSET()]], [[OBJECT_ASSIGN()]], [[OBJECT_DELETE()]], [[OBJECT_GETARGC()]], [[OBJECT_GETDATA()]], [[OBJECT_GETOBJECT()]], [[OBJECT_GETPARAMETER()]], [[OBJECT_GETPROPERTY()]], [[OBJECT_GETTYPE()]], [[OBJECT_GETVALUE()]], [[OBJECT_NEW()]], [[OBJECT_RETERROR()]], [[OBJECT_RETPROPERTY()]], [[OBJECT_RETRESULT()]], [[OBJECT_SETARG()]], [[OBJECT_SETDATA()]], [[OBJECT_SETPROPERTY() | + | [[DEFINE_CLASS()]], [[DEFINE_METHOD()]], [[DEFINE_PROPERTYGET()]], [[DEFINE_PROPERTYSET()]], [[DISPATCH_FACTORY()]], [[DISPATCH_METHOD()]], [[DISPATCH_PROPGET()]], [[DISPATCH_PROPSET()]], [[OBJECT_ASSIGN()]], [[OBJECT_DELETE()]], [[OBJECT_GETARGC()]], [[OBJECT_GETDATA()]], [[OBJECT_GETOBJECT()]], [[OBJECT_GETPARAMETER()]], [[OBJECT_GETPROPERTY()]], [[OBJECT_GETTYPE()]], [[OBJECT_GETVALUE()]], [[OBJECT_NEW()]], [[OBJECT_RETERROR()]], [[OBJECT_RETPROPERTY()]], [[OBJECT_RETRESULT()]], [[OBJECT_SETARG()]], [[OBJECT_SETDATA()]], [[OBJECT_SETPROPERTY()]] |
[[Category:Documentation]] | [[Category:Documentation]] | ||
[[Category:SDK]] | [[Category:SDK]] |
Latest revision as of 12:44, 27 March 2009
PURPOSE
Return an OBJARG format string as an API_EXPRESSION
SYNONYM
None
SYNOPSIS
#include "dbapi.h" OBJECT_GETARG(buffer, result) <input parameters> OBJARG buffer; /* Address of a buffer containing an OBJARG */ <output parameters> API_EXPRESSION *result; /* Pointer to an API_EXPRESSION to return result */
DESCRIPTION
The OBJECT_GETARG() macro is used to convert an OBJARG format string to a API_EXPRESSION. Objects are not converted with this macro.
EXAMPLE
In the following example OBJECT_GETARG() is used to convert an OBJARG string returned from an introspection of a property in the ObjValue object to an API_EXPRESSION.
Example Recital program:
test = newobject("myclass") // Executes method 'define' and updates two properties ? test.define("Error Message", -1000) ? "test.objvalue.errorno",test.objvalue.errorno ? "test.objvalue.message",test.objvalue.message
Example in 'C' object:
#include "dbapi.h" /* Define define method */ DEFINE_METHOD(clsMyClass, Define) { struct example_data *objectData = (struct example_data *)OBJECT_GETDATA(); struct API_EXPRESSION result; char buffer[512]; int rc; /* Check the object class */ OBJECT_GETPROPERTY(objectData->prop_objvalue, "class", buffer); rc = OBJECT_GETARG(buffer, &result); if (result.errno == 0 && result.type == 'C' && strcmp(result.character, "Exception") == 0) { switch (OBJECT_GETARGC()) { case 2: rc = OBJECT_GETPARAMETER(2, &result); if (result.errno == 0 && result.type == 'N') { OBJECT_SETARG(buffer, &result); rc = OBJECT_SETPROPERTY(objectData->prop_objvalue, "errorno", buffer); } case 1: rc = OBJECT_GETPARAMETER(1, &result); if (result.errno == 0 && result.type == 'C') { OBJECT_SETARG(buffer, &result); rc = OBJECT_SETPROPERTY(objectData->prop_objvalue, "message", buffer); } break; } } result.type = 'L'; result.logical = (rc == 0 ? 'T' : 'F'); OBJECT_RETRESULT(&result); }
SEE ALSO
DEFINE_CLASS(), DEFINE_METHOD(), DEFINE_PROPERTYGET(), DEFINE_PROPERTYSET(), DISPATCH_FACTORY(), DISPATCH_METHOD(), DISPATCH_PROPGET(), DISPATCH_PROPSET(), OBJECT_ASSIGN(), OBJECT_DELETE(), OBJECT_GETARGC(), OBJECT_GETDATA(), OBJECT_GETOBJECT(), OBJECT_GETPARAMETER(), OBJECT_GETPROPERTY(), OBJECT_GETTYPE(), OBJECT_GETVALUE(), OBJECT_NEW(), OBJECT_RETERROR(), OBJECT_RETPROPERTY(), OBJECT_RETRESULT(), OBJECT_SETARG(), OBJECT_SETDATA(), OBJECT_SETPROPERTY()