Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADODB Command 
:(
    Опции темы
Fantaz1
Дата 10.7.2010, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 16.1.2009

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



Подскажите, как правильно использовать класс для работы с SQL запросами _CommandPtr ?? 
Пробую использовать его вот так:
Код

void CMyDatabase::OpenRecordsetSQL(CString strSQL)
{
        try
        {
                rset->Close();
        }
        catch(...)
        {
        }
 
        com->ActiveConnection = con;
        com->CommandText = strSQL.GetBuffer(0);
        
        rset->Open((IDispatch*)com,(IDispatch*)con,adOpenDynamic,adLockOptimistic,adCmdTable);
}

rset это _RecordsetPtr

но к сожалению не чего не получается выдается ошибка..(

если открываю вот таким способом, то работает все нормально
Код

void CMyDatabase::OpenRecordset(CString table, CString filter)
{
        try
        {
                rset->Close();
        }
        catch(...)
        {
        }
        rset->Filter = filter.GetBuffer(0);
        rset->Open(table.GetBuffer(0),(IDispatch*)con,adOpenDynamic,adLockOptimistic,adCmdTable);
}


Подскажите пожалуйста как правильно использовать SQL запросы в ADODB???
PM MAIL   Вверх
jonie
Дата 12.7.2010, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 4
Всего: 118



вам надо просто вызвать метод CommandPtr->Execute(), он как раз вернет вам готовый  ADODB::_RecordsetPtr


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Fantaz1
Дата 13.7.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 16.1.2009

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



jonie можете пожалуйста на моем примере показать как и где использовать этот метод?
PM MAIL   Вверх
jonie
Дата 14.7.2010, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 4
Всего: 118



Код

    _ConnectionPtr conn;
    conn.CreateInstance(__uuidof(Connection));
    conn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False", L"", L"", 0);

    ADODB::_CommandPtr cmd;
    cmd.CreateInstance(__uuidof(Command));
    cmd->ActiveConnection = conn;
    cmd->CommandText = L"SELECT * FROM tab1";

    _RecordsetPtr rs = cmd->Execute(NULL, NULL, 0);
    if(rs){
        while(!rs->ADOEOF)
        {
            std::wcout<< rs["data"] <<L"\n";
            rs->MoveNext();
        }
    }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Fantaz1
Дата 14.7.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 16.1.2009

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



jonie СПАСИБО ОГРОМНОЕ!!!!smile) наконец то все получилось)))
PM MAIL   Вверх
nicebigman
Дата 15.10.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.7.2007

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



Плиз укажите какие reference надо указать на проекте, чтобы "увидеть" указанные объекты?
Спасибо
PM MAIL   Вверх
jonie
Дата 1.11.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 4
Всего: 118



#import "c:\Program Files\Common Files\System\ADO\msado26.tlb"  raw_interfaces
типа такого... подробнее о #import и ее фичах в справке...



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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