Description
There are two versions of the PBArrayAccessor template class. The first version is used to access the items in an array of a standard type. The second version is used to access items in a string array. The standard types are defined as ValueTypes in pbtraits.h and are pbint, pbuint, pbbyte, pblong, pblonglong, pbulong, pbboolean, pbreal, pbdouble, pbdec, pbdate, pbtime, pbdatetime, pbchar, pbblob, and pbstring.
PBArrayAccessor has four methods:
Description
Obtains the array item at the specified dimension.
Syntax
GetAt(pblong dim[])
Return value
ValueType (defined in pbtraits.h).
Examples
See SetAt.
See also
Description
Returns true if the array item contains a null value, otherwise returns false.
Syntax
IsNull(pblong dim[ ])
Return value
pbboolean.
See also
Description
Sets the array item at the specified dimension.
Syntax
For arrays of a specified ValueType:
SetAt(pblong dim[ ], ValueType v)
For string arrays:
SetAt(pblong dim[ ], LPCTSTR string) SetAt(pblong dim[ ], pbstring string)
Argument |
Description |
---|---|
dim |
The dimension of the array item to be set |
v |
A ValueType defined in pbtraits.h |
string |
A string of type pbstring or LPCTSTR |
Return value
None.
Examples
This example shows the use of GetAt and SetAt in arrays of a type specified by a ValueType:
template < typename T, pbvalue_type I> void ArrayCreator<T, I>::f_unbounded_simple_array( IPB_Session* session, ifstream in, fstream out, LPCSTR data_type) { pbarray out_array; int i; pblong dim[4], itemcount1, itemcount2; T *iarg, oarg; in >> itemcount1; iarg = new T[itemcount1]; // Create unbounded integer array { PBUnboundedArrayCreator<I> ac(session); out_array = ac.GetArray(); PBArrayAccessor<I> aa(session, out_array); for(i=0; i<itemcount1; i++) in >> iarg[i]; for (i=0; i<itemcount1; i++) { dim[0]=i+1; aa.SetAt(dim, iarg[i]); } itemcount2 = session->GetArrayItemCount(out_array); out <<"The array item count is "<< itemcount2 << endl; for (i=0; i<itemcount2; i++) { dim[0]=i+1; oarg=aa.GetAt(dim); if (oarg != iarg[i]) out << "*** ERROR"<< endl; else out << oarg << " "; } } delete []iarg; out << endl; return; }
See also