Oracle OCCI - получить столбец по имени вместо индекса - PullRequest
1 голос
/ 09 февраля 2011

С помощью oracle OCCI можно вместо предоставления индекса для столбца при запросе данных из набора результатов запроса фактически передать имя столбца и получить данные?

Так что вместо этого: (псевдокод)

std::string query = "SELECT NAME FROM CUSTOMERS;";

std::string myresult = oracle.getString(1); // name column in query

вы бы сделали это:

std::string myresult = oracle.getString("NAME"); //column name to get string from

есть ли способ сделать это? Я огляделся по сторонам, но ничего не смог найти, кроме того, что собирался получить метаданные таблицы.

1 Ответ

2 голосов
/ 10 февраля 2011

Я только что прочитал документацию .

В нем говорится, что ResultSet имеет метод getColumnListMetaData(), который выдает vector из MetaData.

Скорее всего, вы можете затем использовать MetaData::getString, чтобы найти имя столбца.

И если это так, то вы можете использовать std::map<string, int> для сопоставления имен столбцов с индексами.

И с этим сопоставлением name index вы можете реализовать getString, который принимает в качестве аргументов результат запроса и имя столбца.

Возможно, кто-то, кто использовал эту конкретную базу данных, может помочь вам лучше, но, похоже, все, что было нужно, это взглянуть на документацию.

Cheers & hth.,

...