c++ SQL Server ADO串连

来源:互联网 发布:济宁seo公司 编辑:程序博客网 时间:2024/04/29 16:51

第一次玩CSDN,一个大学本科生,到了快毕业的年纪,真不知道是应该样样涉猎还是一心钻研。怎么说,走一步是一步吧。

今天找了做了C++ 和 SQLServer 连接的方式,在网上寻找很多方法并不适用,今天自己改着改着弄出来了,留作纪念!

#include <icrsint.h>#include<iostream>#include<iomanip>#include <string>using namespace std;#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename("EOF", "adoEOF") //ADOvoid main(){CoInitialize(NULL);_ConnectionPtr  sqlSp;HRESULT hr=sqlSp.CreateInstance(_uuidof(Connection));if(FAILED(hr)){cout<<"_ConnectionPtr¶ÔÏóÖ¸ÕëʵÀý»¯Ê§°Ü!!!"<<endl;return ;}else {try {_bstr_t strConnect="Driver={sql server};server=127.0.0.1,1433;uid=***;pwd=****;database=*****;";   sqlSp->Open(strConnect,"","",adModeUnknown);}catch(_com_error &e) {cout<<"´ò¿ªÊý¾Ý¿âʧ°Ü!!"<<endl;}//ÊäÈë½×¶Îcout<<"1£º²éѯ"<<endl;cout<<"2£º²åÈë"<<endl;cout<<"3£ºÉ¾³ý"<<endl;int flag;cin>>flag;if(flag==1)                  //²éѯÊý¾Ý¿â½á¹û{_RecordsetPtr m_pRecordset;           //ÉùÃ÷¼Ç¼¼¯¶ÔÏóÖ¸Õ룬ÓÃÀ´Ö´ÐÐSQLÓï¾äif(FAILED(m_pRecordset.CreateInstance( _uuidof( Recordset )))){cout<<"³õʼ»¯¼Ç¼¼¯¶ÔÏóÖ¸Õëʧ°Ü!"<<endl;return;}try{//m_pRecordset->Open("select * from dbo.student",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic, adCmdText);//Ö´Ðе¥±íSQLÓï¾äm_pRecordset->Open("select dbo.student.ID,dbo.student.name,dbo.stugrade.grade from dbo.student join dbo.stugrade on dbo.student.ID=dbo.stugrade.ID",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic, adCmdText);           //Ö´Ðжà±íÁ¬½Ó}catch (_com_error &e){cout<<"SQLÓï¾äÖ´ÐÐʧ°Ü!!"<<endl;}try {m_pRecordset->MoveFirst();cout<<"²éѯ½á¹ûÈçÏÂËùʾ:"<<endl;while(!m_pRecordset->adoEOF) {string stu_num=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("ID"))->Value);string stu_name=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("name"))->Value);string stu_grade=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("grade"))->Value);cout<<stu_num<<" "<<stu_name<<" "<<stu_grade<<endl;m_pRecordset->MoveNext();}}catch (_com_error &e){cout<<"½á¹û³ö´í!!"<<endl;}}else if(flag==2){_RecordsetPtr m_pRecordset;           //ÉùÃ÷¼Ç¼¼¯¶ÔÏóÖ¸Õ룬ÓÃÀ´Ö´ÐÐSQLÓï¾äif(FAILED(m_pRecordset.CreateInstance( _uuidof( Recordset )))){cout<<"³õʼ»¯¼Ç¼¼¯¶ÔÏóÖ¸Õëʧ°Ü!"<<endl;return;}_bstr_t insert_sql="insert into dbo.student values(4,'wang')";try{sqlSp->Execute(insert_sql,NULL,adCmdText);m_pRecordset->Open("select * from dbo.student",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic, adCmdText);//Ö´ÐвåÈëºó½øÐÐSQLÓï¾ä²éѯ}catch (_com_error &e){cout<<"SQLÓï¾äÖ´ÐÐʧ°Ü!!"<<endl;}try {m_pRecordset->MoveFirst();cout<<"²éѯ½á¹ûÈçÏÂËùʾ:"<<endl;while(!m_pRecordset->adoEOF) {string stu_num=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("ID"))->Value);string stu_name=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("name"))->Value);cout<<stu_num<<" "<<stu_name<<endl;m_pRecordset->MoveNext();}}catch (_com_error &e){cout<<"½á¹û³ö´í!!"<<endl;}}else if(flag==3)                 //ɾ³ý{_RecordsetPtr m_pRecordset;           //ÉùÃ÷¼Ç¼¼¯¶ÔÏóÖ¸Õ룬ÓÃÀ´Ö´ÐÐSQLÓï¾äif(FAILED(m_pRecordset.CreateInstance( _uuidof( Recordset )))){cout<<"³õʼ»¯¼Ç¼¼¯¶ÔÏóÖ¸Õëʧ°Ü!"<<endl;return;}_bstr_t delete_sql="delete from dbo.student where ID=4";try{sqlSp->Execute(delete_sql,NULL,adCmdText);m_pRecordset->Open("select * from dbo.student",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic, adCmdText);//Ö´ÐвåÈëºó½øÐÐSQLÓï¾ä²éѯ}catch (_com_error &e){cout<<"SQLÓï¾äÖ´ÐÐʧ°Ü!!"<<endl;}try {m_pRecordset->MoveFirst();cout<<"²éѯ½á¹ûÈçÏÂËùʾ:"<<endl;while(!m_pRecordset->adoEOF) {string stu_num=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("ID"))->Value);string stu_name=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("name"))->Value);cout<<stu_num<<" "<<stu_name<<endl;m_pRecordset->MoveNext();}}catch (_com_error &e){cout<<"½á¹û³ö´í!!"<<endl;}}}system("pause");}

0 0
原创粉丝点击