Ok, sada su mi bar neke misterije jasnije

, _Super_Ellite_Bug_ mi je objasnio (koliko moze za moj nivo znanja) te com-specific funkcije.
Znam nesto osnovno o COM objektima, pravio sam ActiveX objekte u visual basicu. Sto se literature tice, jedina "savremena" kniga koju sam procitao je "Microsoft Visual C++ Biblija" za msvcpp 5.0, u njoj ima nesto malo o com/activex tehnologiji.
Dobar je taj DAO (data access objects) primer, ali dao je star i vise se ne koristi jer ne moze da se update-uje, i bugovi su popravljeni u novom ADO-u (activex data objects). C++ 5 i 6 podrzavaju DAO, ODBS i SQL Server (t-sql zapravo), ali ne i ADO, na msdnu jos nema dokumentacije za c++, samo za vb/asp. Na internetu sam trazio dosta, ali svi imaju isti problem i zaobilaze te komplikacije kao sto radi ovaj dao primer, preko sql drajvera najcesce (sql sintaksa je uvek ista).
Nasao sam i neke artikle koji objasnjavaju koriscenje msado15.dll-a.
Pa, ako iko pozeli da koristi ADO u cppu, evo kako se to radi na najlaksi nacin:
1.) Prvo se importuje dll (u stdafx.h ako je afx prisutan, ili mfc):
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCust")
rename("EOF","EndOfFile")
using namespace ADOCust;
Mora se zameniti EOF jer vec postoji, "ADOCust" nije potreban, moze i ovako:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
Isto mora i sa importlib ako je u pitanju ATL kontrola, a i mora da se ukloni _ATL_MIN_CRT preprocesorska definicija u release verziji.
2.) Lista klasa:
_Connection, _ConnectionPtr
_Recordset, _RecordsetPtr
(Ptr=pointer)
Evo nekih primera

:
Otvaranje konekcije:
Code:
pConnection->Open(strConectIt, "", "",
adConnectUnspecified);
Ovo je samo primer, ali isto je kao u vbu.
Otvaranje tabele/pogleda, itd:
Code:
pRecordset->Open(commandString, strConectIt,
adOpenStatic, adLockReadOnly, adCmdText);
Otvaranje polja:
Code:
my_String = _strdup((char*) ((_bstr_t)(pRecordset->GetFields()->
GetItem("ImePolja")->GetValue())) );
my_String je LPCSTR, a ADO daje/trazi samo BSTR odnosno _bstr_t, pa ih treba konvertovati, jer je nemoguce obradjivati BSTR (mada postoje osnovne funkcije).
_strdup je simpaticna funkcija iz win98, pa nece raditi u starijim verzijama, ja je cesto koristim na mesto strcpy :P.
Ovako moze da se koristi ADO bez (vecih) problema, a ja se sada vracam na osnove COM odnosno ActiveX programiranja.