模板天下 | 网页模板 | 学 院 | 源 码 | 书 籍 | 壁 纸 | 字 体 | JS脚本 | FLASH源码 | 软 件 | 矢 量 | 服务器软件 | 素 材 | 其 它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 | 站长乐园 | 业界动态 |
当前在线
关于recordcount等-1的问题
2007-8-24 17:34:14  作者:模板天下收集整理  来源:未知 网友评论 0 条 论坛
   

1\
mssql--asp的rs.recordcount值为负1

只有以ADO方式调用数据库才有recordcount这一说,用存储过程需要用select count(*) from table_name自行统计
? 这个说的不对, 存储过程也可以用 ado 来打开,比如:rs.open "exec SomeProc", conn, 1, 3我处理解决的方法是rs.open sql,conn,1,1解决此问题
 
2\
通常人们使用以下两种方法来执行SQL语句:
Set Rs=Conn.Execute(SqlStr)

Set Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open SqlStr,Conn,CursorType,LockType

(RecordSet对象方法请看这里)

由于默认的记录集游标是服务器游标,
Rs.CursorLocation = adUseServer
所以返回Rs.RecordCount=-1,
应该把服务器游标改为客户端游标,
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType

rs.cursortype

光标类型 recordcount 属性
---------------------------------------------
ForwardOnly 0(默认) 返回-1
Keyset 1 正确的记录数
Dynamic 2 -1或不正确的记录数,依数据源而定
Static 3 正确的记录数

所以Rs.CursorLocation = 3
可用recordset.support("属性名")进行测试是否支持该属性。
http://www.dwww.cn/new/20051128112149636.html


3\
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1
来读数据,

要不就用Select Count(*) As RecordCount From [table]
oRs("RecordCount")来获取

要不就用Do While Not oRs.Eof
RecordCount = RecordCount + 1
Loop


4\我的数据库是这么连接的:
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
sql="SELECT * FROM space "
set rs=createobject("adodb.recordset")
rs.open sql,conn,1,1

可是的确有记录集返回
还可以显示

共分1页  [1] 

>> 相关文章

关于网站 | 客服中心 | 服务条款 | 合作伙伴 | 广告联系 | 本站历程 | 网站导航 | 发布资源 == 好的资源 大家共享

吉ICP备05000107号