随笔-376  评论-37  文章-0  trackbacks-0

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//AdoDBManager.h
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


class AdoDBManager
{
public:
 AdoDBManager(void);

 ~AdoDBManager(void);

 void Exec(char* str);

 void CloseConnect();

protected:
 _ConnectionPtr  m_pConn;
 _bstr_t    m_strConnInfo;
 _RecordsetPtr  m_pRecset;
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//AdoDBManager.cpp
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include "StdAfx.h"
#include "AdoDBManager.h"
#include <iostream>


AdoDBManager::AdoDBManager(void)
{
 CoInitialize(NULL);

 //m_pConn.CreateInstance(__uuidof(Connection));
 HRESULT hr = m_pConn.CreateInstance("ADODB.Connection");///创建Connection对象
 if(!SUCCEEDED(hr))
  return;

 m_pConn->Open("Provider=SQLOLEDB; Server=winsvr01; Database=Market; uid=dev; pwd=dev1234;", "", "", -1);

 hr = m_pRecset.CreateInstance(_uuidof(Recordset));

 if(!SUCCEEDED(hr))
  return;

 int i = 0;
}

AdoDBManager::~AdoDBManager(void)
{
 if(m_pConn)
  delete m_pConn;

 if(m_pRecset)
  delete m_pRecset;
}


void AdoDBManager::Exec(char* str)
{
 std::string strName;

 m_pRecset->Open(_variant_t(str), m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

 while(!m_pRecset->EndOfFile)
 {

  FieldsPtr   fields = m_pRecset->GetFields();  
  int   nFields = fields->GetCount(); 
  for(int i = 0; i < nFields; i++)
  {
   //_variant_t vUsername,vBirthday,vID,vOld;
   //vID = m_pRecordset->GetCollect(_variant_t((long)0));///取得第1列的值,从0开始计数,
   //if(vID.vt != VT_NULL && vUsername.vt != VT_NULL && vOld.vt != VT_NULL && vBirthday.vt != VT_NULL)
   // TRACE("id:%d,姓名:%s,年龄:%d,生日:%s\r\n",
   // vID.lVal,
   // (LPCTSTR)(_bstr_t)vUsername,
   // vOld.lVal,
   // (LPCTSTR)(_bstr_t)vBirthday);
  }

  m_pRecset->MoveNext();
 }

 m_pRecset->Close();
}

void AdoDBManager::CloseConnect()
{
 m_pConn->Close();
}

posted on 2010-01-22 19:33 小王 阅读(143) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理