Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как на С++ прочитать поле raw (Oracle) в ADO? 
:(
    Опции темы
niggar
Дата 4.7.2005, 14:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В БД под управлением Oracle есть таблица с полем типа RAW.
при обращении к таким полям получаю последовательность квадратиков как я понимаю двоичные данные. А мне надо записать это значение в буфер wchar_t*. Как конветнуть или правильно получить данные?

Пример:


ADODB::_RecordsetPtr rec = NULL;
ADODB::_CommandPtr cmd = NULL;
hr = cmd.CreateInstance(__uuidof(ADODB::Command));
cmd->ActiveConnection = conn;
cmd->CommandType = ADODB::adCmdText;
cmd->CommandText = _bstr_t(L"select f1 from t1");
rec = cmd->Execute( &vtMissing, &vtMissing, ADODB::adCmdText);

variant_t v;
v = rec->GetFields()->GetItem(0)->Value;





Для размышления:
если я помещу ковертацию в SQL, то все работает отлично.. но мне так не надо


cmd->CommandText = _bstr_t(L"select raw_to_hex(f1) from t1");





Буду очень признателен за помощь. Спасибо.

  Вверх
Orlan
Дата 22.7.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: нет
Всего: 1



Цитата(niggar @ 4.7.2005, 14:01)
variant_t v;
v = rec->GetFields()->GetItem(0)->Value;

Ты уже сделал пол дела - выгрузил данные из базы.
Осталось лишь преобразовать из _variant_t в удобные тебе тип.
Посмотри чему равен тип варианта - v.vt - и действуй дальше в зависимости от этого.
Скорее всего там окажется одномерный однобайтовый SAFEARRAY (VT_ARRAY), тогда ты сможеш пребразовать полученные данные в void*
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.