[MFC]ADO操作数据库

建立连接我就不多说了,网上一堆.

 

普通的INSERT/DELETE/SELECT等可以用查询语句实现,也很简单.

 

记录一下数据库的修改.

 

数据库里有多种类型的数据,这些数据在添加或者读取或者修改的时候都是不一样的.

 

但是在数据库中全部统一为_variant_t类型.

字符串的读取:

 

读取出来的是BSTR类型,既不是ANSI也不是UNICODE,我查了好半天才知道,应该这么做(记得先查询)

 

_com_util::ConvertBSTRToString((_bstr_t)pRecordset->GetCollect("xxxx"));

 

得到的就是ANSI编码的字串.

数据的更新:

 

比如说我要更新一条数据的好几个信息,用查询语句也能够实现,但是不容易发现错误(如果失败的话),那么就先通过查询语句找到这一条数据,然后

 

pRecordset->Fields->GetItem(_variant_t(_T("xxx")))->Value = _variant_t(新的值);//字符串

 

SYSTEMTIME SysTime;
TCHAR SqlCmd[MAX_PATH];
GetLocalTime(&SysTime);
wsprintf(SqlCmd, _T("%d-%d-%d"), SysTime.wYear, SysTime.wMonth, SysTime.wDay);
pRecordset->Fields->GetItem(_variant_t(_T("xxx")))->Value = _variant_t(SqlCmd);//日期(貌似不能用now函数了)

 

pRecordset->Fields->GetItem(_variant_t(_T("xxx")))->Value = _variant_t((short)1);//字节型数据

 

_variant_t varDes;
varDes.vt = VT_I4;
varDes.ulVal = 100000;
pRecordset->Fields->GetItem(_variant_t(_T("xxx")))->Value = varDes;//DWORD类型数据

 

最后别忘了

pRecordset->Update();
pRecordset->Close();

其实我也想过用VB来做,但是我感觉在效率上还是VC比较高,也是顺便学技术了.

你可能感兴趣的:(数据库,mfc,Path,vb)