Prikazi cijelu temu 19.02.2011 00:19
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:ADO Konekcija na MDB bazu
PreuzmiIzvorni kôd (C++):
  1. #import "G:\Program Files\Common Files\System\ADO\msado15.dll"
  2. #include "Debug\msado15.tlh"
  3. #include<atlbase.h>
  4. #include<iostream>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     CoInitialize(0);
  11.     {
  12.         HRESULT hr = -1;
  13.         CComPtr<IUnknown> cnnobj;
  14.         CComPtr<IUnknown> rdsnobj;
  15.         CComPtr<IUnknown> errobj;
  16.         hr = cnnobj.CoCreateInstance(L"ADODB.Connection.2.7");
  17.         ADODB::_Connection* cnn;
  18.         ADODB::_Recordset* rds;
  19.         ADODB::Error* err;
  20.         BSTR berr;
  21.         ADODB::Fields* fds;
  22.         ADODB::Field* fd1;
  23.         ADODB::Field* fd2;
  24.  
  25.        
  26.         hr = cnnobj->QueryInterface(&cnn);
  27.         hr = cnn->Open(L"driver={Microsoft Access Driver (*.mdb)};dbq=[c:\\db1.mdb];", L"", L"", -1);
  28.        
  29.         hr = rdsnobj.CoCreateInstance(L"ADODB.Recordset.2.7");
  30.         hr = rdsnobj->QueryInterface(&rds);
  31.  
  32.         hr = errobj.CoCreateInstance(L"ADODB.Error.2.7");
  33.         hr = errobj->QueryInterface(&err);
  34.  
  35.         hr = rds->put_ActiveConnection(_variant_t(cnn));
  36.         hr = rds->Open(_variant_t("select * from Table1"), _variant_t(cnn),  ADODB::adOpenUnspecified, ADODB::adLockUnspecified, -1);
  37.  
  38.         VARIANT_BOOL eof;
  39.         VARIANT_BOOL bof;
  40.         hr = rds->MoveFirst();
  41.         hr = rds->get_Fields(&fds);
  42.         hr = fds->get_Item(_variant_t(L"X"), &fd1);
  43.         hr = fds->get_Item(_variant_t(L"Y"), &fd2);
  44.         BSTR namex;
  45.         BSTR namey;
  46.         hr = fd1->get_Name(&namex);
  47.         hr = fd2->get_Name(&namey);
  48.  
  49.         cout<< "filends count: "<< fds->GetCount()<< endl;
  50.         wcout<< L"<"<< namex<< L"><"<< namey<< L">"<< endl;
  51.         VARIANT valx, valy;
  52.         while(true)
  53.         {
  54.             hr = rds->get_EOF(&eof);
  55.             hr = rds->get_BOF(&bof);
  56.             if(eof)break;
  57.             if(bof)break;
  58.             fd1->get_Value(&valx);
  59.             fd2->get_Value(&valy);
  60.             wcout<< L"{"<< (wchar_t*)_bstr_t(_variant_t(valx))<< L"}{";
  61.             wcout<< (wchar_t*)_bstr_t(_variant_t(valy))<< L"}"<< endl;
  62.  
  63.             hr = rds->MoveNext();
  64.         }
  65.         hr = rds->Close();
  66.         hr = cnn->Close();
  67.  
  68.     }
  69.     CoUninitialize();
  70.     return 0;
  71. }

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.