ASP在访问Sql2005对left join语句的时出现不兼容的问题

今天早晨在开发系统的时候遇到一个问题,原来数据库是SQL2000,现在升级到2005后出现了问题,在网上找了找,还真有这个。

 

A表

--------------------

ID  NAME

1   A1

2   A2


B表

--------------------

ID  Grade

1   a


查询:  Select A.*,B.Grade from A Left Join B on A.Id=B.Id

在查询分析器中返回:

ID  NAME  GRADE

1   A1    a

2   A2    NULL


但在asp中却返回:

ID  NAME  GRADE

1   A1    a


不知为何?程序没有变动过,以前可以用的,用了很久一段时间.换服务器了之后就成这样子了.

服务器配置SQL 2005 

 

看了,解决方式是rs.open sql,conn,1,3的问题,将其修改为

rs.open sql,conn,3,1就可以解决了,本人以前没有怎么在意过这个参数,现在附上希望对大家有所参考

参数:

RS.OPEN SQL,CONN,A,B  
  参数A为设定游标的类型,其取值为:  
  0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark  
  1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark  
  2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。  
  3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动  
  参数B为记录集的锁定类型,其取值为:  
  1 锁定类型,默认的,只读,不能作任何修改  
  2 当编辑时立即锁定记录,最安全的方式  
  3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等  
  4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的  
  打开数据记录集方法其实不止一种,但是我们用的最多的就是  
  rs.open sql,1,1的方法,可是后面的数字参数很多人不解其意,下面我们来介绍一下。 
  其实open方法后面有多个参数  
  CursorType LockType CommandType  
  比如 rs.open sql,1,1  
  也可以写成  
  rs.cursorType = 1  
  rs.LockType = 1  
  rs.open sql  
  其中CursorType代表从一个表或者一个SQL查询结果返回的记录。  
  这个参数有四个值分别是:  
  adOpenForwardOnly 表示只允许在记录集内的记录间往前移动。这个是缺省值。  
  adOpenKeyset 反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。  
  adOpenDynamic 反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录  
  adOpenStatic 不反映其它用户对记录所做的修改,添加,删除动作。  
  这四个值VBSCRIPT预定义位  
  adOpenForwardOnly = 0  
  adOpenKeyset = 1  
  adOpenDynamic = 2  
  adOpenStatic = 3  
  lockType 表示当打开记录集时,数据提供者用于锁定数据库的类型:  
  adLockReadOnly 数据不能改变,这是缺省值!  
  adLockPessimistic 数据提供

ASP在访问Sql2005对left join语句的时出现不兼容的问题

者在开始编辑数据的时候锁定记录  
  adLockOptimistic 仅当调用update方法时,数据提供者锁定记录  
  adLockBatchOptimistic 用于批处理修改  
  他们的常量值定义分别是:  
  adLockReadOnly = 1  
  adLockPessimistic = 2  
  adLockOptimistic = 3  
  adLockBatchOptimistic = 4  
  rs.open sql,conn,1,1 读取记录 select  
  rs.open sql,conn,1,3 只更新记录最好 update  

  rs.open sql,conn,2,3 插入和删除最好 insert delete


http://www.bugubirds.com/Html/?8289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值