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}中,应该怎么写? 展开
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}中,应该怎么写? 展开
2个回答
展开全部
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的要运行的话可能要修改一下
展开全部
// 执行查询
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
。。。
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
。。。
}
这个函数执行后就得到了,
m_pRecordset,类型_RecordsetPtr
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
。。。
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
。。。
}
这个函数执行后就得到了,
m_pRecordset,类型_RecordsetPtr
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询