MFC中ADO数据库基本sql语句应用

首先先给出执行sql语句的函数ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL),由自己加入到工程中

bool CTrade_MISApp::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
 if ( ADOSet->State == adStateOpen) ADOSet->Close();
 try
 {
        ADOSet->Open(strSQL, ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
     return true;
 }
 catch(_com_error &e)
 {
       CString err;
    err.Format("ADO Error: %s",(char*)e.Description());
    AfxMessageBox(err);
    return false;
 }
}

函数是加在APP类中的,也同时在类中添加了一个变量_RecordsetPtr  m_pADOSet,记录集指针变量

1.插入数据

_variant_t strQuery, Holder;                       

strQuery = "insert into suppliers (CompanyName, ContactName, Address, City) values

                  (' " + m_sCompany+" ' , ’ “+m_sPerson+" ' , ' "+m_sAddress+" ', ' "+ m_sCity+ " ')";

theApp.ADOEXecute(theApp.m_pADOSet, strQuery);

 

2.查询数据

_variant_t strQuery, Holder;

strQuery = "select * from suppliers where CompanyName = ' " +m_sCompany+ " ' ";

theApp.ADOEXecute(theApp.m_pADOSet, strQuery);

int iCount  = theApp.m_pADOSet->GetRecordCount();//获得查询结果数量

theApp.m_pADOSet->MOveFirst();

for(int i = 0 ; i < iCount; i++)

{

     Holder = theApp.m_pADOSet->GetCollect("CompanyName");//得到具体字段的值

     str = Holder.vt == VT_NULL ? "" : (char *)(_bstr_t)Holder;//将得到值转化为字符串,因为得到的是_variant_t类型

        ....................................

}

 

3.删除数据

_variant_t strQuery;

strQuery = "delete from suppliers where CompanyName='"+sCompany+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);

 

这里只是基本简单的语句调用,有时程序需要用到更为复杂的查询语句时,其实就是把sql嵌在字符串里,注意引号的书写。

  害羞
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值