ADO操作数据库

#include "StdAfx.h"
#include "Ado.h"
#include <string>
#include <vector>
using namespace std;
CAdo::CAdo(void)
{
 if (!SUCCEEDED(::CoInitialize(NULL)))
 {
  MessageBox(NULL, _T("初始化COM失败!!!"), _T("text"), MB_OK);
 }
 //  or  afxoleinit()  contain  construct and extract(析构)
 //AfxOleInit();
 m_pconnect.CreateInstance(__uuidof(Connection));
}
CAdo::~CAdo(void)
{
 ::CoUninitialize();
}
BOOL CAdo::OpenDatabase(string str1, string str2 , string str3 )
{
 TRACE("\nOpendatabase ");
 try
 {
  m_pconnect->Open(_bstr_t(str1.c_str()), _bstr_t(str2.c_str()), _bstr_t(str3.c_str()), adModeUnknown);
 }
 catch (_com_error e)
 {
  TRACE("open  fail!!!!\n");
  return FALSE;
 }
 return TRUE;
}
void     CAdo::CloseDatabase()
{
 if (m_pconnect->State)
 {
  m_pconnect->Close();
  m_pconnect = NULL;
  TRACE("\nclose  database");
 }
}
BOOL CAdo::initRecord()
{
 TRACE("\ninitrecord");
 m_precord.CreateInstance(__uuidof(Recordset));
 return TRUE;
}
BOOL CAdo::GetSlectData1(string sentence, string str1, string str)
{
 TRACE("select sentence");
 try
 {
  m_precord->Open(sentence.c_str(),m_pconnect.GetInterfacePtr(), adOpenDynamic,
   adLockOptimistic,adCmdText);
 }
 catch(_com_error e)
 {
  return FALSE;
 }
 TRACE("verify data");
 try
 {
  if (!m_precord->BOF)
  {
   m_precord->MoveFirst();
  } 
  else
  {
   return FALSE;
  }
 }
 catch(_com_error e)
 {
  return FALSE;
 }
 TRACE("get data");
 int x = 0;
 _variant_t var;
 while(!m_precord->adoEOF)
 {
  var = m_precord->GetCollect(_variant_t(str1.c_str()));
  if (var.vt != VT_NULL)
  {
   str = _com_util::ConvertBSTRToString((_bstr_t)var);
  }
  m_precord->MoveNext();
  x++;
 }
 m_precord->Close();
 return TRUE;
}
BOOL CAdo::InsertData(string str1, string str2)
{
 TRACE("\ninsertdata str");
 try
 {
  m_precord->Open("SELECT * FROM MultiLangString",m_pconnect.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);
  m_precord->AddNew();
  m_precord->PutCollect("date", _variant_t(str1.c_str()));
  m_precord->PutCollect("Money" ,_variant_t(str2.c_str()));
  m_precord->Update();
  m_precord->Close();
 }
 catch(_com_error e)
 {
  AfxMessageBox(e.Description());
  return FALSE;
 }
 return TRUE;
}
BOOL CAdo::InsertData(string str1, int ndata)
{
 m_precord->Open("SELECT * FROM MultiLangString",m_pconnect.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);
 m_precord->AddNew();
 m_precord->PutCollect(_variant_t(str1.c_str()), (_variant_t)(long)ndata);
 m_precord->Update();
 m_precord->Close();
 return TRUE;
}
void CAdo::fndeleateitem(int item)
{
 TRACE("\ndelete a item");
 try
 {
  m_precord->Open("SELECT * FROM MultiLangString",m_pconnect.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);
  if (!m_precord->BOF)
  {
   m_precord->MoveFirst();
   m_precord->Move(item-1);
   m_precord->Delete(adAffectCurrent);
   m_precord->Update();
   m_precord->Close();
  } 
  else
  {
   m_precord->Close();
  }
  
 }
 catch (_com_error* e)
 {
  AfxMessageBox(e->Description());
 }
}
void     CAdo::QueryData(DATAINFOS &Alldata)
{
 try
 {
  m_precord->Open("SELECT * FROM MultiLangString",m_pconnect.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);
  if (!m_precord->BOF)
  {
   m_precord->MoveFirst();
  
   _variant_t var;
   while(!m_precord->adoEOF)
   {
    var = m_precord->GetCollect("date");
    if (var.vt != VT_NULL)
    {
     Alldata.date.push_back(_com_util::ConvertBSTRToString((_bstr_t)var));
    }
    else
    {
     Alldata.date.push_back(" ");
    }
    var = m_precord->GetCollect("Money");
    if (var.vt != VT_NULL)
    {
     Alldata.money.push_back(_com_util::ConvertBSTRToString((_bstr_t)var));
    }
    else
    {
     Alldata.money.push_back(" ");
    }
    m_precord->MoveNext();
 
   }
   
  }
 
 m_precord->Close();
 }
 catch (_com_error* e)
 {
  AfxMessageBox(e->Description());
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值