C++链接SqlServerWord文件下载.docx
《C++链接SqlServerWord文件下载.docx》由会员分享,可在线阅读,更多相关《C++链接SqlServerWord文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
)
usingnamespacestd;
//初始化连接数据库
voidCADO:
:
Connect(void)
{
try
{
cout<
<
"
正在连接数据库。
。
endl;
:
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)
e.Description()<
}
//退出连接
ExitConnect(void)
{
if(m_pRecordset!
=NULL)
m_pRecordset->
Close();
m_pConnection->
CoUninitialize();
//释放环境
//执行查询
_RecordsetPtr&
CADO:
GetRecordset(_bstr_tSQL)
m_pRecordset=NULL;
CADOlink;
if(m_pConnection==NULL)
Connect();
//连接数据库,如果Connection对象为空,则重新连接数据库
m_pRecordset.CreateInstance(__uuidof(Recordset));
//创建记录集对象
Open((_bstr_t)SQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
//取得表中的记录
returnm_pRecordset;
//返回记录集
//执行SQL语句,InsertUpdate_variant_t
boolCADO:
ExecuteSQL(_bstr_tbstrSQL)
//_variant_tRecordsAffected;
//是否已经连接数据库
if(m_pConnection==NULL)
//Connection对象的Execute方法:
(_bstr_tCommandText,
//VARIANT*RecordsAffected,longOptions)
//其中CommandText是命令字串,通常是SQL命令。
//参数RecordsAffected是操作完成后所影响的行数,
//参数Options表示CommandText的类型:
adCmdText-文本命令;
adCmdTable-表名
//adCmdProc-存储过程;
adCmdUnknown-未知
Execute(bstrSQL,NULL,adCmdText);
returntrue;
returnfalse;
ADO.h
#ifndef_ADO_H_
#define_ADO_H_
//用来连接数据库
classCADO
private:
_ConnectionPtrm_pConnection;
//添加一个指向Connection对象的指针:
_RecordsetPtrm_pRecordset;
//添加一个指向Recordset对象的指针:
public:
voidConnect(void);
voidExitConnect(void);
_RecordsetPtr&
GetRecordset(_bstr_tSQL);
boolExecuteSQL(_bstr_tbstrSQL);
};
#endif
Test.cpp
charloginname[50],loginpassword[50];
intlogin()
-------------------------------------------------"
登录界面"
charinputname[50],inmputpassword[50];
intflag=0;
请输入用户名:
cin>
>
inputname;
请输入密码:
inmputpassword;
stringsql;
//用来放sql语句
CADOrecord;
//声明一个类的对象
record.Connect();
//连接数据库
//用来放得到的数据集
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->
password"
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)
登录失败!
登录成功!