欢迎光临爱时尚女性网
 

应用数据库的唯一性约束并在asp中捕捉数据库的错误

2013-8-2 编辑:admin 来源:互联网 阅读次数:
  导读: 本文中所提到的ASP页面,除特别声明外,均指写ASP与数据库的结合的程序时,经常会遇到同一数据表中不允许存在重复值的问题,比如用户注册程序中不允许出现相同的用户ID。这......
本文中所提到的购彩网登入页面,除特别声明外,均指
ASP与数据库的结合的程序时,经常会遇到同一数据表中不允许存在重复值的问题,比如用户注册程序中不允许出现相同的用户ID。这样的情况下,我以前采取的办法是读取数据库中的已存在值,然后与用户输入的值比较,如果有相同,则提示已被注册,须重新填写。这样做可以达到预期的目的,但是因为有一次额外的数据库存取操作,比较浪费资源。
我们都知道,数据表中的列可以设置唯一性约束,就是从数据库限制该字段不允许出现重复值,违反唯一性约束后,数据库将返回2627错误,提示“违反了 %1! 约束 ''%2!''。不能在对象 ''%4!'' 中插入重复键”,这是数据库的输出,sql server 的所有错误都存储在系统表 master.dbo.sysmessages 中。用户定义的消息也可以存储在 sysmessages 中。在ASP中调用存储过程的时候,由于存储过程没有容错处理,会返回该提示到页面,并终止语句的执行,@@Error返回值为0。如果页面设置了容错,则不会出现错误提示,但因为错误是数据库中出现的,所以Err.Number不能得到其错误号。(也可能是我的数据库不熟的原因:-),还请大虾指点)。近日研究ADO,找到了一种更加简便的方式实现该控制。
ADO(ActiveX Data Objects)被广泛的用于应用程序与数据库的连接,ASP也可以通过他来实现对数据库的操作的。ADO 2.1的Connection对象中有一个Error对象,通过它可以捕捉到来自数据库的错误,以在ASP页面中控制。该对象常用的Property有如下几个,均为只读:
Description:字符型,返回来自数据库的错误描述
Source:字符型,错误来源
SQLState:字符型,ODBC API(驱动程序管理器)错误,SQL Server 2000中对其有如下描述:
SQLSTATE 返回的字符串值由两个字符的类值后接三个字符的子类值组成。类值 01 表明是一种警告,后跟随 SQL_SUCCESS_WITH_INFO 的返回代码。只要类值不是 01(IM 除外),则表明是一种错误,后跟随 SQL_ERROR 的返回代码。类 IM 专门用于表明从 ODBC 实现产生的警告和错误。任何类中子类值 000 均用于实现给定类中所定义条件。这种类值和子类值的分配方法由 SQL-92 定义。
跑题了跑题了,回到刚才的话题~~~
Number:返回与错误相关联的数字值,是一个 32 位的值。较高的 16 位字是设施代码,而较低的字才是真正的错误代码。
NativeError:这就是我们今天要用到的,MSDN对他的描述是:
The NativeError property on a Error(是不是M$的BUG?我英语不及格:-))object indicates the provider-specific error code for a given Error object. This property returns a a Long value that indicates the error code.
还有HelpFile和Helpcontext,都是有关帮助的,这里就不详述了。
在这里我们用到了NativeError,用它来捕捉来自数据库的错误,他返回了该错误的编号。源程序片断如下:


本文关键词:

文章出自:互联网,文中内容和观点不代表本网站立场,如有侵权,请您告知,我们将及时处理。

 
 
链接交换请联系:QQ:790646582 首页链接要求百度快照在一周以内,不符合以上要求的各站,我们将定期把友情连接转入内页,谢谢合作。
Copyright @ 2012-2015 太阳城手机登陆网址 保留所有权利吉ICP备14005127号-1 服务QQ:175529508 e-mail:zk8312@163.com
本站部分资源来自网友上传,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。
{"remain":97038,"success":1}
 
网站地图 威尼斯人有多少被黑的登入 银河彩票注册登入 东方彩票app下载登入
太阳城申博娱乐平台 申博太阳城官网 太阳城集团官方网 申博太阳阳下载
大发云彩票直营网 重庆时时彩投注平台 9188彩票网分分彩登入 皇冠彩票官网
购彩网登入 易博彩票官方网登入 198彩注册登入 七星彩票开奖号码登入
特彩吧天空彩票登入 易博彩票开户登入 易博彩票游戏登入 彩票99官网是真是假登入
777sbmsc.com 911XTD.COM 361xx.com 33sbib.com 688TGP.COM
157cw.com 777TGP.COM 358PT.COM 729DC.COM 788sj.com
537SUN.COM 88sbib.com S618F.COM 987jbs.com 398psb.com
618cw.com 2222XSB.COM 987cw.com 99sbsun.com 1385170.com