C++链接SQL代码测试

这篇博客介绍了如何在C++中使用代码连接并执行SQL查询,特别是更新数据库记录的操作。示例代码展示了如何设置SQL语句以及执行该语句。
void CMFCSQLDlg::OnBnClickedOk()
{
CoInitialize(NULL);
    _ConnectionPtr m_pConnection;
   HRESULT hr=m_pConnection.CreateInstance(_uuidof(Connection));
    if(FAILED(hr))
    {
        cout<<"_ConnectionPtr对象指针实例化失败!!!"<<endl;
        return ;
   }
    else {  
        try {   /*127.0.0.1,1433*/
            _bstr_t strConnect="Driver={sql server};server=(local);uid=sa;pwd=P@ssw0rd;database=测试;";
           m_pConnection->Open(strConnect,"sa","P@ssw0rd",adModeUnknown);
}
         catch(_com_error &e) {
             cout<<e.Description()<<endl;
         }
         
_RecordsetPtr m_pRecordset;
         if(FAILED(m_pRecordset.CreateInstance( _uuidof( Recordset ))))
         {
             cout<<"记录集对象指针实例化失败!"<<endl;
             return;
         }
         try {
m_pRecordset.CreateInstance("ADODB.Recordset");//从注册表
_variant_t ra ;
        m_pConnection->Execute("CREATE TABLE student4(学号 INTEGER,姓名 TEXT,性别 TEXT,年龄 INTEGER,部门 TEXT)",&ra,adCmdText);
m_pConnection->Execute("INSERT INTO student4(学号,姓名,年龄,部门) VALUES (112105, '程红秀',22,'市场部')",&ra,adCmdText);
m_pConnection->Execute("INSERT INTO student4(学号,姓名,年龄,部门) VALUES (112106, 'xx',25,'市场部')",&ra,adCmdText);
m_pConnection->Execute("INSERT INTO student4(学号,姓名,年龄,部门) VALUES (112107, '赵y',35,'市场部')",&ra,adCmdText);

char sql[100];

//sprintf_s(sql, "use 测试 update student1 set 姓名='全家性',部门='序号' where 年龄 =22", str1 );
//m_pConnection->Execute(sql,&ra,adCmdText);


////执行SQL统计命令得到包含记录条数的记录集
 m_pRecordset =m_pConnection->Execute("SELECT COUNT(*)FROM student5",&ra,adCmdText);
//取得第一个字段值放入vCount变量
 _variant_t vCount=m_pRecordset->GetCollect((_variant_t)(long)(0));

m_pRecordset->Close();
CString str;
str.Format(L"共有%d条记录",vCount.iVal);
AfxMessageBox(str);
}
         catch (_com_error &e)
{
             cout << e.Description()<<endl;
         }
         try {
             m_pRecordset->MoveFirst();
             while(!m_pRecordset->adoEOF) 
             {
  
                 string insertTime=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("InsertTime"))->Value);
                
cout<<insertTime<<endl;
                 m_pRecordset->MoveNext();
             }
         }
         catch (_com_error &e)
         {
             cout << e.Description()<<endl;
         }
     }
     //system("pause");
CDialogEx::OnOK();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值