ADO连接sql数据库的问题

部分代码如下:voidADOConn::OnInitADOConn(){::CoInitialize(NULL);try{//创建Connection对象m_pConne... 部分代码如下:
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串
_bstr_t strConnect = "Provider=SQLOLEDB; Server=SONY-2B574FD709;data Source=(local);Database=score; uid=sa; pwd=123456;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}
// 执行查询
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
return m_pRecordset;
}
// 执行SQL语句
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已经连接数据库
if(m_pConnection == NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void ADOConn::ExitConnect()
{
// 关闭记录集和连接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 释放环境
::CoUninitialize();
}

请问我从数据库中读取出来的数据放在哪里?如果想把读取出来的数据放入结构体student{cstring name;cstring unit;int score}中,应该怎么写?
展开
 我来答
AsonOfTheSoil
2014-09-28
知道答主
回答量:14
采纳率:0%
帮助的人:10.4万
展开全部
void CStudent::GetDate()
{
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();//连接数据库
_bstr_t vSQL; //设置SELECT语句
vSQL = "SELECT t.name,t.unit,t.score FROM student t WHERE t.stu_id=" + cStu;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);  //执行SELETE语句,并返回数据集
if (!m_pRecordset->adoEOF) //如果返回数据集不为空
{
student.name = m_pRecordset->GetCollect("name");
student.unit = m_pRecordset->GetCollect("unit");
student.score = m_pRecordset->GetCollect("score");
}
else
{
AfxMessageBox("查询结果为空");
}
m_AdoConn.ExitConnect();
}

1.GetRecordSet方法获取查询返回的数据集
2.将就着看吧,大概就这么个意思,不是搞VC的要运行的话可能要修改一下
oowood
2014-09-28 · TA获得超过1781个赞
知道大有可为答主
回答量:2196
采纳率:81%
帮助的人:1239万
展开全部
// 执行查询
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
。。。
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
。。。
}
这个函数执行后就得到了,
m_pRecordset,类型_RecordsetPtr
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式