2011-02-09 2 views
1

Использование oacle OCCI возможно вместо того, чтобы указывать индекс для столбца при запросе данных из набора результатов запроса, чтобы фактически передать имя столбца и получить данные?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

getVector() можно было бы изучить более. – DumbCoder

+0

@ DumbCoder: вы использовали его раньше? Можете ли вы привести пример использования? В примерах –

ответ

2

Я только что прочитал documentation.

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

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

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

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

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

Приветствия & HTH.,

+0

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

+0

Я знаю, что это старый вопрос, но вы можете получить MetaData из ResultSet, где индекс будет правильно соответствовать вашим прогнозируемым столбцам. –

Смежные вопросы