| Oracle® Objects for OLE C++ Class Library Developer's Guide 10g Release 2 (10.2) B14308-01 |
|
Applies To
Description
This method returns the object's name.
Usage
const char *GetName(void) const
Remarks
Various objects can be referred to, in one context or another, by name.
returns a pointer to a null-terminated string containing the name.
The actual memory that the pointer points to is managed by the object. It should not be freed by the caller; it will be freed when the object is destroyed or closed.
Return Value
A pointer to a string if successful; NULL if not.
Example
An example of the uses and pitfalls of GetName:
// we have connection information from a caller:
// dname - database name
// connect - username/password
ODatabase odb;
odb.Open(dname, connect);
if (!odb.IsOpen())
return; // the user gave us a bad connect
// odb.GetName will equal dname
// we also have an SQL statement called sqlstmt
// open a dynaset with it
ODynaset dyn(odb, sqlstmt);
if (!dyn.IsOpen())
return; // user gave us a bad SQL statement
// What is the name of the first field in the dynaset?
OField f1 = dyn.GetField(0);
const char *fieldname = f1.GetName();
// that works fine
// what if we skipped the declaration of f1?
const char *fname2 = dyn.GetField(0).GetName();
/*
What object is GetName run on? The temporary OField object returned by
dyn.GetField(0). It will successfully return a name with GetName() and then go out of
scope. So GetName() will return a non-NULL pointer that is pointing to freed
memory. Watch out!
*/