读书人

一个简单的ADO有关问题求帮忙多谢

发布时间: 2012-03-23 12:06:21 作者: rapoo

一个简单的ADO问题,急求帮忙,谢谢了
利用VC++2008,MFC,sql2005开发
连接类ADOConn的部分定义如下(里面的AfxMessageBox函数主要用来调试的方便):
void ADOConn::OnInitADOConn()

{

//初始化库环境

::CoInitialize(NULL);

try{

//创建connection对象

m_pConnection.CreateInstance("ADODB.Connection");

//设置链接字符串

_bstr_t strConnect="Provider=SQLOLEDB; Server=tsis_server;Database=pbsystem_test; uid=sunwt; pwd=sunwt2011;";

m_pConnection->Open(strConnect,"","",adModeUnknown);

}

catch(_com_error e)

{

AfxMessageBox(_T("链接出错"));

}

}

void ADOConn::ExitConnect()

{

// 关闭记录集和连接

if (m_pRecordset != NULL)

m_pRecordset->Close();

m_pConnection->Close();

// 释放环境

::CoUninitialize();

}

_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL) // 执行查询

{

try

{

// 连接数据库,如果Connection对象为空,则重新连接数据库

if(m_pConnection==NULL)

OnInitADOConn();

AfxMessageBox(_T("执行查询1"));

// 创建记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

AfxMessageBox(_T("执行查询2"));

// 取得表中的记录

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockReadOnly,adCmdText);

AfxMessageBox(_T("执行查询3"));

}

// 捕捉异常

catch(_com_error e)

{

// 显示错误信息

AfxMessageBox(_T("执行查询出错"));

}

// 返回记录集

return m_pRecordset;

}

// 执行SQL语句

BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)

{

_variant_t RecordsAffected;

try

{

// 是否已经连接数据库

if(m_pConnection == NULL)

m_pConnection->Execute(bstrSQL,NULL,adCmdText);

return true;

}

catch(_com_error e)

{

AfxMessageBox(_T("执行SQL语句出错"));

return false;

}

}
==========一个简单的读取如下=================
ADOConn m_AdoConn;

AfxMessageBox(_T("执行查询4"));

m_AdoConn.OnInitADOConn();

AfxMessageBox(_T("执行查询5"));

CString m_sql;

m_sql.Format("select TOP 1 from tab_info_config");

AfxMessageBox(_T("执行查询6"));

_RecordsetPtr m_pRectordset;

m_pRectordset=m_AdoConn.GetRecordSet((_bstr_t)m_sql);

AfxMessageBox(_T("执行查询7"));

if(m_AdoConn.m_pRecordset->adoBOF==true)

{

AfxMessageBox(_T("链接成功"));

}



m_AdoConn.ExitConnect();

===========问题如下===============
运行的时候,这个函数AfxMessageBox(_T("执行查询X"));
显示的顺序依次是:执行查询4、5、6、1、2、执行查询出错、7。

各位大神帮我分析看看,哪里写的有问题,着急要用,大家帮帮忙,谢谢了。

[解决办法]
"select TOP 1 from tab_info_config" 这个有问题 应该是top 1 *

读书人网 >VC/MFC

热点推荐