Oracle® Objects for OLE C++ Class Library Developer's Guide 10g Release 1 (10.1) Part Number B10119-01 |
|
Applies To
Description
OField constructor
Usage
OField(void)
OField(const OField &otherfield)
Arguments
otherfield |
Another OField object that you are copying. |
These methods construct a new OField instance.
The default constructor constructs an unopened OField object. It cannot fail.
The copy constructor copies another OField object. If that other OField object is open - which means it is a handle on an implementation field object - the new OField object becomes a handle to that same field object. The copy constructor copies the reference to the field object but does not copy any strings that the source OField may own. The copy constructor can fail; check whether the new OField is open after the constructor call.
There is no Open method for the OField class. To get an open OField, call one of the GetField methods.
Example
This method sums all the salaries of employees.
// open the employee database
ODatabase odb("ExampleDB", "scott", "tiger");
// open a dynaset on the employee's table
ODynaset odyn(odb, "select sal, comm from employees");
// get a field on the salary for speed
OField salf = odyn.GetField("sal");
/*
By using the = operator in the declaration of salf we are invoking the copy constructor. It is copying the temporary object that is returned by the GetField method.
*/
// sum the salaries
double sumsal = 0.0;
odyn.MoveFirst();
while (!odyn.IsEOF())
{
sumsal += (double) salf;
odyn.MoveNext();
}
// of course, we could have done the same thing (faster) with:
ODatabase odb("ExampleDB", "scott", "tiger");
ODynaset odyn(odb, "select sum(sal) from employees");
odyn.GetFieldValue(0, &sumsal);
// the server is good at that kind of bulk calculation