使用ADO访问SQL SERVER2000的取得记录总数问题pubakRS.CreateInstance(_uuidof(Recordset));
try{
pubakRS->Open("select * from MSUPTableX_BAK",
pConn.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}catch{....}
pubakRS已经调用open
调用pubakRS->addnew(),movenext(),也很正常
但就是无法取得当前位置,和记录总数
int i = pubakRS->AbsolutePosition;
i = pubakRS->RecordCount;
跟踪了一下i的值,老是为-1,请教一下大家是怎么一会事,初次使用ADO,问得难免有点瓜吧,请大家不要见笑
try{
pubakRS->Open("select * from MSUPTableX_BAK",
pConn.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}catch{....}
pubakRS已经调用open
调用pubakRS->addnew(),movenext(),也很正常
但就是无法取得当前位置,和记录总数
int i = pubakRS->AbsolutePosition;
i = pubakRS->RecordCount;
跟踪了一下i的值,老是为-1,请教一下大家是怎么一会事,初次使用ADO,问得难免有点瓜吧,请大家不要见笑
怎样使用基于静态或键集的临时表,使RecordCount可以返回一个正确的值?
m_pSet->CursorType = adOpenStatic;
m_pSet->CursorLocation = adUseClient;具体的分析原因参考
http://blog.csdn.net/laiyiling/archive/2005/04/29/367711.aspx
create proc
p_query(
@sqlstring varchar(1024)
)
as
exec('select * from ( ' + @sqlstring + ') a ')
exec('select count(0) from ( ' + @sqlstring + ') a ')go这样会返回两个记录集,第一个是数据,第二个只有一行一列,是数据条数
set rs=conn.execute(sql)返回第二条记录集
set rs2=rs.nextrecordset
count=rs2(0)
我第一次也是用的上面的方法来判断的记录数的,但要多查询了一次数据库挺麻烦的,代码也显得很繁琐,改用在open前使用,就好多了,已搞定了
m_pSet->CursorType = adOpenStatic;
m_pSet->CursorLocation = adUseClient;
3Q,各位