Using oracle OCCI is it possible instead of supplying an index for the column when requesting data from a query resultset, to actually pass the column name and get the data?
So instead of doing: (pseudocode)
std::string query = "SELECT NAME FROM CUSTOMERS;";
std::string myresult = oracle.getString(1); // name column in query
you'd do this:
std::string myresult = oracle.getString("NAME"); //column name to get string from
is there any way to do this? I have looked around, but been unable to find anything, besides perhaps going to fetch the table's metadata.
I just read the documentation.
It says
ResultSet
has a methodgetColumnListMetaData()
, which produces avector
ofMetaData
.Most probably you can then use
MetaData::getString
to find the name of column.And if so then you can use a
std::map<string, int>
to map the column names back to indices.And with that name → index mapping in place you can then implement a
getString
that takes a query result and column name as arguments.Possibly someone who has used this particular database can help you better, but it seems that all that was needed was to take a look at the documentation.
Cheers & hth.,