ADO操作数据库

#include "StdAfx.h"#include "Ado.h"#include #include 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());}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值