C++链接SqlServer.docx
- 文档编号:5362784
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:6
- 大小:15.81KB
C++链接SqlServer.docx
《C++链接SqlServer.docx》由会员分享,可在线阅读,更多相关《C++链接SqlServer.docx(6页珍藏版)》请在冰豆网上搜索。
C++链接SqlServer
ADO.cpp
#include"ado.h"
#include"icrsint.h"
#include
#include
#include
#include
#import"c:
\programfiles\commonfiles\system\ado\msado15.dll"no_namespacerename("EOF","adoEOF")
usingnamespacestd;
//初始化连接数据库
voidCADO:
:
Connect(void)
{
try
{
cout<<"正在连接数据库。
。
。
。
。
。
"< : : CoInitialize(NULL);//初始化COM环境 m_pConnection.CreateInstance(__uuidof(Connection));//创建连接对象 _bstr_tstrConnect="Driver={sqlserver};server=LIXIN-XINXI-PC\\SQLEXPRESS;uid=sa;pwd=sa;database=test;"; //_bstr_t这个类封装并管理BSTR这种数据类型 HRESULThr=m_pConnection->Open(strConnect,"","",adModeUnknown); cout<<"连接数据库成功! "< if(hr! =S_OK) cout<<"不能连接到指定的数据库! "< } catch(_com_errore) { cout< } } //退出连接 voidCADO: : ExitConnect(void) { if(m_pRecordset! =NULL) { m_pRecordset->Close(); m_pConnection->Close(); } : : CoUninitialize();//释放环境 } //执行查询 _RecordsetPtr&CADO: : GetRecordset(_bstr_tSQL) { m_pRecordset=NULL; CADOlink; try { if(m_pConnection==NULL) Connect();//连接数据库,如果Connection对象为空,则重新连接数据库 m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集对象 m_pRecordset->Open((_bstr_t)SQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); //取得表中的记录 } catch(_com_errore) { cout< m_pRecordset=NULL; returnm_pRecordset; } returnm_pRecordset;//返回记录集 } //执行SQL语句,InsertUpdate_variant_t boolCADO: : ExecuteSQL(_bstr_tbstrSQL) { //_variant_tRecordsAffected; try { //是否已经连接数据库 if(m_pConnection==NULL) Connect(); //Connection对象的Execute方法: (_bstr_tCommandText, //VARIANT*RecordsAffected,longOptions) //其中CommandText是命令字串,通常是SQL命令。 //参数RecordsAffected是操作完成后所影响的行数, //参数Options表示CommandText的类型: adCmdText-文本命令;adCmdTable-表名 //adCmdProc-存储过程;adCmdUnknown-未知 m_pConnection->Execute(bstrSQL,NULL,adCmdText); returntrue; } catch(_com_errore) { cout< returnfalse; } } ADO.h #ifndef_ADO_H_ #define_ADO_H_ #include"icrsint.h" #include #include #include #include #import"c: \programfiles\commonfiles\system\ado\msado15.dll"no_namespacerename("EOF","adoEOF") usingnamespacestd; //用来连接数据库 classCADO { private: _ConnectionPtrm_pConnection;//添加一个指向Connection对象的指针: _RecordsetPtrm_pRecordset;//添加一个指向Recordset对象的指针: public: voidConnect(void); voidExitConnect(void); _RecordsetPtr&GetRecordset(_bstr_tSQL); boolExecuteSQL(_bstr_tbstrSQL); }; #endif Test.cpp #include"ado.h" #include #include usingnamespacestd; charloginname[50],loginpassword[50]; intlogin() { cout<<"-------------------------------------------------"< cout<<"登录界面"< cout<<"-------------------------------------------------"< charinputname[50],inmputpassword[50]; intflag=0; cout<<"请输入用户名: "; cin>>inputname; cout<<"请输入密码: "; cin>>inmputpassword; stringsql;//用来放sql语句 CADOrecord;//声明一个类的对象 record.Connect();//连接数据库 _RecordsetPtrm_pRecordset;//用来放得到的数据集 sql="select*fromusers"; _bstr_tbstr(sql.c_str()); m_pRecordset=record.GetRecordset(bstr); while(! m_pRecordset->adoEOF) { strcpy_s(loginname,(_bstr_t)m_pRecordset->GetFields()->GetItem("username")->Value); strcpy_s(inmputpassword,(_bstr_t)m_pRecordset->GetFields()->GetItem("password")->Value); if(strcmp(loginname,inputname)==0&&strcmp(inmputpassword,inmputpassword)==0) { flag=1;//找到该用户,身份验证正确 break; } m_pRecordset->MoveNext(); } record.ExitConnect();//释放连接 if(flag==0) return0; else return1; } intmain() { if(login()==0) { cout<<"登录失败! "< } else { cout<<"登录成功! "< } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 链接 SqlServer