Predmet:ADO Konekcija na MDB bazu
PreuzmiIzvorni kôd (C++):#import "G:\Program Files\Common Files\System\ADO\msado15.dll"
#include "Debug\msado15.tlh"
#include<atlbase.h>
#include<iostream>
using namespace std;
int main()
{
CoInitialize(0);
{
HRESULT hr = -1;
CComPtr<IUnknown> cnnobj;
CComPtr<IUnknown> rdsnobj;
CComPtr<IUnknown> errobj;
hr = cnnobj.CoCreateInstance(L"ADODB.Connection.2.7");
ADODB::_Connection* cnn;
ADODB::_Recordset* rds;
ADODB::Error* err;
BSTR berr;
ADODB::Fields* fds;
ADODB::Field* fd1;
ADODB::Field* fd2;
hr = cnnobj->QueryInterface(&cnn);
hr = cnn->Open(L"driver={Microsoft Access Driver (*.mdb)};dbq=[c:\\db1.mdb];", L"", L"", -1);
hr = rdsnobj.CoCreateInstance(L"ADODB.Recordset.2.7");
hr = rdsnobj->QueryInterface(&rds);
hr = errobj.CoCreateInstance(L"ADODB.Error.2.7");
hr = errobj->QueryInterface(&err);
hr = rds->put_ActiveConnection(_variant_t(cnn));
hr = rds->Open(_variant_t("select * from Table1"), _variant_t(cnn), ADODB::adOpenUnspecified, ADODB::adLockUnspecified, -1);
VARIANT_BOOL eof;
VARIANT_BOOL bof;
hr = rds->MoveFirst();
hr = rds->get_Fields(&fds);
hr = fds->get_Item(_variant_t(L"X"), &fd1);
hr = fds->get_Item(_variant_t(L"Y"), &fd2);
BSTR namex;
BSTR namey;
hr = fd1->get_Name(&namex);
hr = fd2->get_Name(&namey);
cout<< "filends count: "<< fds->GetCount()<< endl;
wcout<< L"<"<< namex<< L"><"<< namey<< L">"<< endl;
VARIANT valx, valy;
while(true)
{
hr = rds->get_EOF(&eof);
hr = rds->get_BOF(&bof);
if(eof)break;
if(bof)break;
fd1->get_Value(&valx);
fd2->get_Value(&valy);
wcout<< L"{"<< (wchar_t*)_bstr_t(_variant_t(valx))<< L"}{";
wcout<< (wchar_t*)_bstr_t(_variant_t(valy))<< L"}"<< endl;
hr = rds->MoveNext();
}
hr = rds->Close();
hr = cnn->Close();
}
CoUninitialize();
return 0;
}
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.