m_recordSet->Open(buf,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
其中buf是一个SQL语句,
如何得到返回的行数?
GetRecordCount()结果为0,
还有其他办法吗?
其中buf是一个SQL语句,
如何得到返回的行数?
GetRecordCount()结果为0,
还有其他办法吗?
解决方案 »
- 关于sokcet的困惑
- ---!!!调用DLL的函数,MFC界面无响应,急救!!!---
- 请教个小问题!
- 我在Rebar上创建的子窗口总是Disabled的,为什么?
- 我想学 HOOK 高手帮忙!
- 问题: 在纯资源DLL中的对话框怎样通过调用显示出来?急急急
- 谁有http中汉字解码的资料?
- vc api 编程,想不用main()函数,编一个不是控制台 也没有窗口的程序!程序入口是什么?开头怎么写
- 问一个简单的对话框问题。。。
- 很痛苦的问题:如何将一个自定义孔件动态加入对话框中?
- 为什么 COleTemplateServer::UpdateRegistry不是注册OLE的首选?
- 各位知道怎么将网页上的图片采集下来的么????
如果这样调用不行的话,可能是你的OLE DB Provider不支持。
你是连接什么数据库的?连接字符串是怎么写的?
{
//构造SQL语句
CString strStatement(_T(""));
strSQL.MakeLower();
int iPos = strSQL.Find(_T("from"));
if (iPos > 0)
{
strStatement = strSQL.Right(strSQL.GetLength() - iPos);
strStatement = _T("SELECT count(*) ") + strStatement;
} _RecordsetPtr m_Set; try
{
//初始化记录集对象
m_Set.CreateInstance(__uuidof(Recordset)); //查询
m_Set->Open(_variant_t(strStatement),
g_pConn.GetInterfacePtr(),
adOpenForwardOnly,
adLockReadOnly,
adCmdText);
if (m_Set->State != adStateOpen)
{
return 0;
} _variant_t Holder;
if(!m_Set->EndOfFile)
{
_variant_t Holder = m_Set->GetCollect((_variant_t)(long)0);
int iCount = _ttol((LPCTSTR)_bstr_t(Holder)); return iCount;
}
else
{
return 0;
}
}
catch(...)
{
return 0;
}
return 0;
}
adOpendynamic总是得到记录数0ADO在多线程的时候它的有时是return的更是-1,可能是一个BUG吧,自己计数吧
int count;
while(!m_pRecordset->adoEOF)
{
count++;
m_pRecordset->MoveNext();
}
m_pRecordset->MoveFirst();
Recordset15::get_RecordCount
打开方式是
->Open(.. ,adOpenDynamic, adLockOptimistic, adCmdText)
打开方式是
->Open(.. ,adOpenDynamic, adLockOptimistic, adCmdText)能看一下您的链接语句吗?
我使用的ODBC连接
改成adOpenDynamic,还是返回,结果是-1
肯定好使!
分
{
...
m_recordset->MoveNext();
}