Проблема с ADOCE...
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 14.06.05 16:57
Оценка:
Наконец то добрался до написания проги для работы с Pocket Access-ой БД...
Постокльку разрабатываю на eVC++ не могу так вот запросто работать с ADOCE 3.0 как в еVB
Пытаюсь работать с ней как с COM объектом, но что-то ничего не выходит...
Реганул десктопную библу и тут получил проблему...
1) директива #import работать не хочет, через OLE/COM Object Viewer выяснил GUID и по нему пытался симпортировать... невышло. Пишет не мргу открыть такую-то библиотеку.
2) нужно ли импотировать ещё что-то для работы с этой билиотекой.

Есть ли альтернативный вариант работы с этой БД?
Может всё проше и не надо мучить COM? Тем более что перспектива рабрты через диспинтерфейс на eVC меня не устраивает...

В силу обстоятельств юзаю eVC++ 3.0 с PocketPC2002 SDK.

Зарание благодарен за ответ.
Sic luceat lux!
Re: Проблема с ADOCE...
От: Xentrax Россия http://www.lanovets.ru
Дата: 14.06.05 19:26
Оценка:
Здравствуйте, Kernan, Вы писали:


Уйййя, Мама, не горюй
Какой вижуал бейсик, какой disp-интерфейс? Это же С++! Импортируйте либу от девайса, а не десктопную!

Вот вам наш вариант:

#pragma once

#ifdef UNDER_CE
//: ADO for CE version 3.1:

#import "ADOCE\adoce31.dll" raw_interfaces_only rename ("index", "Index")
using namespace ADOCE;

#import "ADOCE\adoxce31.dll" raw_interfaces_only \
    exclude("_Collection")                                        \
    exclude("_DynaCollection")                                    \
    exclude("DataTypeEnum")                                        \
    exclude("Properties")                                        \
    exclude("User")                                                \
    exclude("Key")                                                \
    exclude("Group")                                            \
    exclude("Property")

using namespace ADOXCE;

#define adAffectCurrent 1

//#include "ADOCE31.h"
//#include "ADOXCE31.h"
//#define adAffectCurrent 1

#else
//: ADO for PC version 2.1:

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" raw_interfaces_only
using namespace ADODB;

#import "C:\Program Files\Common Files\System\ADO\msadox.dll"    raw_interfaces_only    \
    exclude("_Collection")            \
    exclude("_DynaCollection")        \
    exclude("DataTypeEnum")            \
    exclude("Properties")            \
    exclude("User")                    \
    exclude("Key")                    \
    exclude("Group")                \
    exclude("Property")

using namespace ADOX;

#endif




Дальше так:


_ConnectionPtr        m_AdoConn; //* owned
...
HRESULT hr = m_AdoConn.CreateInstance(__uuidof(Connection));
...
_RecordsetPtr        m_AdoRS;
...
HRESULT hr = m_AdoRS.CreateInstance(__uuidof(Recordset));



K>Есть ли альтернативный вариант работы с этой БД?


OLEDB? ADOCE вроде как объявлен трупом, правда есть подозрение, что MS все же скомпилирует его для WCE 5.0, уж очень многие его используют "противозаконно".

K>Может всё проше и не надо мучить COM? Тем более что перспектива рабрты через диспинтерфейс на eVC меня не устраивает...


Что ж вам всем так этот диспинтерфейс дался, да он по-моему вообще глючит с EVC.
Re[2]: Проблема с ADOCE...
От: Аноним  
Дата: 14.06.05 20:52
Оценка:
Здравствуйте, Xentrax, Вы писали:

>Импортируйте либу от девайса, а не десктопную!

Во! Этого я и не знал!
За код спасибо!
Особенно за
#import "ADOCE\adoce31.dll" raw_interfaces_only rename ("index", "Index")
Я ж по libid импорт делал
..поэтому за диспинтерфйсы и взялся.
Тут нашёл MFC обертку для OLEAutomation и уже приготовился её юзать...
Но Бог миловал : )

Кстати, можно ли как-то через libid или progid имортировать, чтоб на обсолютных путях не сидеть?
Re[3]: Проблема с ADOCE...
От: Xentrax Россия http://www.lanovets.ru
Дата: 15.06.05 12:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кстати, можно ли как-то через libid или progid имортировать, чтоб на обсолютных путях не сидеть?


Не знаю, не пробовал. Вряд ли.
Re[4]: Проблема с ADOCE...
От: Lelya  
Дата: 26.01.07 23:14
Оценка:
Если не жалко, поделитесь, пожалуйста библиотекой adoce31.dll Пыталась скачать, надули
Re[5]: Проблема с ADOCE...
От: Xentrax Россия http://www.lanovets.ru
Дата: 01.02.07 21:43
Оценка:
Здравствуйте, Lelya, Вы писали:

L>Если не жалко, поделитесь, пожалуйста библиотекой adoce31.dll Пыталась скачать, надули


Вот, думаю тут эти библиотеки есть:

http://www.microsoft.com/downloads/details.aspx?FamilyID=929bb147-281c-4d6e-a727-67271075fadb&DisplayLang=en
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.