Recordset里的记录数

获取 Recordset 对象中的记录数 在 ADO 中,用 Recordset  对象的 Open 方法打开记录集后,就可以用 GetRecordCount 方法获取记录数。代码如下:    CString strSQL = "SELECT * FROM authors";         _RecordsetPtr pRs = NULL;     pRs.CreateInstance("ADODB.Recordset"); 阅读详情
在ASP应用程序里,一旦你执行了一个数据库查询,接下来常需要判断查询结果的记录集是否为空集. 如果recordset是空的,你会显示一条消息通知用户,查询没有结果,如果recordset不为空,你会将查询的结果显示给用户. 有许多种办法能判断一个
recordset是否为空. 让我们看看ASP邮件列表里的一篇贴子.

 

当查询没有得到符合查询条件的结果时,我想显示一条消息通知用户,用什么甚麽代码可以得知recordset为空呢? 比方一个用户提交了查询的条件,数据库中没有符合条件的记录,现在我的代码只能显示一行空行,我该如何得知recordset为空,然后显示"没有符合条件的查询结果."呢?

有人给出了这个问题的答案,答案是正确的,但没有说得很明白:

与游标类型(Cursor type)有关的做法,你可以这么办:

If rst.RecordCount = 0 Then

'no records found
...do something...

End If

或者用与游标类型无关的代码:

If rst.BOF _ And rst.EOF Then

'BOF & EOF indicates an empty recordset
...do something...

End If

没有经验的ADO/ASP程序员可能无法正确理解上面涉及的概念,大部分的ASP/ADO编程新手用如下的代码来打开一个recordset:

Dim rs, conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open ... Connection String ...

Set rs = conn.Execute("SELECT * FROM authors")

这些代码完全符合语法规范,代码中隐式地创建了recordset对象的一个实例,并将其赋于对象变量rs. 但新手往往没有意识到,如果是隐式地创建了recordset对象,那么缺省的游标类型是forward-only. 绝大部分时候这种游标类型是正确的. 然而,如果你想使用RecordCount属性,你的recordset应该允许反向地读取行(backwards row fetching).

为了解释明白我刚才所堆砌的一大堆术语,让我们来看一个简单的例子. 假设一个程序员用上述的代码来创建recordset,然后企图用下面的代码来显示记录的条数:

Response.Write rs.RecordCount

你将得到-1的结果. 你可能会想,recordset里的记录条数是0,可在这种情况下为甚麽会返回-1的结果呢? -1表示ADO无法决定你的recordset里的实际记录条数. 因为
RecordCount属性统计某个recordset中的记录条数的办法是逐条遍历整个
recordset,然后将游标至回当前值. 所以如果你的游标类型没有显式地声明为静态或是动态的话,这个属性无法将游标至回当前值,也就无法返回正确的统计数字.

大部分你可能利用.EOF属性来得知记录集是否为空,就是上面提到的与游标类型无关的解决办法. 你得记住, 如果想得到你的recordset中的记录条数的正确值,你得用允许反向地读取行的游标,或者耍点儿小聪明,就象下面这些代码那样:

Dim rsCount
Set rsCount = conn.Execute("SELECT Count(*) FROM pubs")
Response.Write rsCount(0)

Wireshark协议分析之SMTP 一:前言 如果说Web浏览是用户参次数最多的网络活动,那么收发邮件有可能是第二位。简单邮件传输协议(SMTP)是发送邮件的标准,它被MicrosoftExchange和Postfix等平台使用 HTTP一样,SMTP由于实现方式、客户端/服务器兼容性相关的一些列特性的不同,在数据包结构上存在多样性。本文只是通过在数据包层面,对邮件发送过程进行分析,来探究SMTP的一些基本功能 二:... 阅读详情

相关推荐

协议基础:SMTP:使用Telnet学习SMTP协议

SMTP是简单邮件传输协议的缩写,这篇文章将通过如何使用telnet命令发生邮件结合RFC文档来学习一下SMTP协议的基础知识。 OSI模型 & SMTP SMTP vs POP3 & IMAP SMTP和POP3以及IMAP都是用来做什么的,简单的来说,smtp主要负责发,pop3和imap主要负责收。 一封邮件的发&收 UML 图: 可以...

知行合一 止于至善 2万+

ODBC获取记录记录数

//ODBC 的 CRecordSet 提供了一个函数GetRecordCount 用于返回记录条数 //但是MSDN上有这样的说明 /*The record count is maintained as a "high water mark," the highest-numbered record yet seen as the user moves through the records

zgl7903的专栏 4388

Wireshark分析SMTP、POP3协议

在本地登录用foxmail登录qq邮箱和163邮箱,用qq邮箱发送邮件给163邮箱,并抓取smtp和pop3协议的数据包: SMTP协议数据包如下: 状态字220代表连接SMTP服务器成功 状态字250表示服务器握手成功 用户登录命令 状态字334表示接受用户登录 用户名登录 用户登录smtp服务器的密码 状态字235代表用户登录成功 该字段记录邮件的发送者,必须存在且完全正确 DATA明令表示以下为邮件正文 邮件的详细信息 ..

FCLSRC的博客 9259

查找ado.Recordset 对象的记录总数

strSQL = "SELECT Count(*) FROM 工作安排表格 "Set objRS2 = objDBconn.Execute(strSQL) Response.Write objRS2.Fields(0) 

狂风的专栏 1515

SMTP协议简介(转)

简单说,SMTP是发邮件时所用到的协议。         SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要...

caowei3047 1262

SMTP协议介绍

1、SMTP介绍 基本概念 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程 只要几分钟。SMTP服务器则

William 10万+

SMTP协议总结

SMTP协议总结

扬帆起航 1340

SMTP协议简介

SMTP(Simple Mail TransferProtocol)即简单邮件传输协议,它是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。smtp服务器是遵循smtp协议的发送邮件服务器,用来发送或中转发出的电子邮件(当接收时作为smtp服务端,当发送时做smtp客户端)。SMTP是一个推协议,它不允许根据需要从远程服务器上“拉”来消息。如果客户使用邮件客户端收取邮件,需要使用POP3或IMAP协议,向邮件服务器拉取邮件数据,此时该服务器作为POP3或IMAP服务器。

1万+

Qt - SMTP协议

SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。

QtCompany的博客 2247

SMTP协议解读以及如何使用SMTP协议发送电子邮件

电子邮件协议中POP3协议用于接收邮件,SMTP协议用于发送邮件。SMTP的全称为Simple Mail Transfer Protocol,也就是简单邮件传输协议,字如其名。   相较于POP3而言,SMTP确实比较简单。这的简单并不是指SMTP的命令比POP3少,而是指SMTP的命令是有序的,而POP3的命令是无序的,理解这一点很重要。也就是说SMTP的命令是要组合在一起才能完成一次邮件发送任务,单独调用每个命令的意义不大。POP3命令则不同,LIST、STAT、UIDL、TOP、RETR、

lgsoftlee的博客 1万+

SMTP协议分析

一、协议简介 二、SMTP命令 三、SMTP响应 四、SMTP代理和SMTP服务器的通信过程分析 一、协议简介       SMTP(Simple Mail Transfer Protocol):简易邮件传输通讯协议 SMTP是互联网上的一种通讯协议,主要功能是用在传送电子邮件,当我们通过电子邮件程序,寄E-mil给另外一个人时,必须通过SMTP通讯协议,将邮件送

拓拓的专栏 9888

SMTP协议

一、SMTP组成部分 SMTP协议是互联网上最古老的应用之一,是电子邮件所采用的协议,是电子邮件发送电子邮件时的协议。 它包括3个组要组成部分。 (1)用户代理 (2)邮件服务器 (3)邮件协议 二、用户代理 用户代理:运行在客户端的软件。 作用: (1)它允许用户阅读,回复,转发,保存,编辑邮件消息。 (2)发送/接收邮件消息到/从服务器。 (3)运行邮件协议。 三、邮件服务器 邮件服务器:也就是我们常说的邮箱存放的位置。 作用: (1)用邮箱存放用户接收的邮件消息。事实上现在绝大部分邮件服务器也同时存放

weixin_42374938的博客 6245

Wireshark抓取SMTP协议报文

Wireshark抓取SMTP协议报文

Ac157ol的博客 1900
上一篇: Sql Server 和 Access 操作数据库结构Sql语句
下一篇: 如何获得刚插入数据库的记录的ID号?
Aresthor_CN
博客等级 码龄21年 9粉丝 18原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值