Oracle® Objects for OLE C++ Class Library Developer's Guide 10g Release 2 (10.2) B14308-01 |
|
Applies To
Description
This method sets the value of the object. Setting an OField value also sets a database field value.
Usage
oresult SetValue(const OValue &val)
oresult SetValue(int val)
oresult SetValue(long val)
oresult SetValue(double val)
oresult SetValue(const char *val)
oresult SetValue(const char *val, int len)
oresult SetValue(const void __huge *blobp, long bloblen) (OField only)
oresult SetValue(const OBlob &val)
oresult SetValue(const OClob &val)
oresult SetValue(const OBfile &val)
oresult SetValue(const ORef &val)
oresult SetValue(const OObject &val)
oresult SetValue(const OCollection &val)
Arguments
Arguments |
Description |
---|---|
val | The new value, in one of a variety of types. |
blobp | Pointer to the long data to be placed in the field. |
bloblen | The number of bytes from blobp to be placed into the field. |
These methods set the value of the object.
If the new value is passed in as a string, the object copies the string. The caller does not have to retain the string.
Setting the value invalidates any pointers returned from a previous (const char *) cast.
Setting the value of an OField is legal only when the related dynaset has an edit mode of ODYNASET_EDIT_NEWRECORD (from an AddNewRecord or DuplicateRecord) or ODYNASET_EDIT_EDITING (from StartEdit). Setting the value of an OField sets the value of the field the OField is on, in the current record, in the Oracle database.
The last method (the one with the blobp argument) is used to place more than 64K bytes of data into a long or long raw field. It is valid only for fields with server types of OTYPE_LONG or OTYPE_LONGRAW. Such fields can also have their values set with (const char *), but only up to 64K.
Return Value
An oresult indicating whether the operation succeeded (OSUCCESS) or not (OFAILURE).
Example
Set the values of some objects:
// open a database ODatabase odb("ExampleDB", "scott", "tiger"); // add a parameter to odb OParameterCollection params = odb.GetParameters(); OParameter deptp; deptp = params.Add("dno", 20, OPARAMETER_INVAR, OTYPE_NUMBER); // set the parameter's value to 10 instead deptp.SetValue(10); // use it ODynaset empdyn; oresult ores; empdyn.Open(odb, "select * from emp where deptno = :dno"); // get an OField on the salary field OField salf = empdyn.GetField("sal"); // and change the salary of the current record empdyn.StartEdit(); salf.SetValue(4500.0); empdyn.Update();