CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

用ADO连接SQL Server 2000的问题(SQL Server 2000不支持动太游标吗?)

楼主xshsoft(internet)2005-01-03 20:32:51 在 MS-SQL Server / 应用实例 提问

Private   Sub   Command1_Click()  
          Dim   ObjConn   As   ADODB.Connection  
          Dim   ObjRs   As   ADODB.Recordset  
          Dim   StrConn   As   String  
          Dim   StrSQL   As   String  
          Dim   IntI   As   Integer  
          Dim   SngOldTime   As   Single  
          Dim   SngTimeOut   As   Single  
           
          SngOldTime   =   Timer()  
          Set   ObjConn   =   New   ADODB.Connection  
          StrConn   =   "Provider=SQLOLEDB;User   ID=sa;Password=50zsmsd25;Initial   Catalog=test;Data   Source=X;"  
          ObjConn.Open   StrConn  
          If   ObjConn   Is   Nothing   Then  
                  MsgBox   "无法连接数据库"   &   vbCrLf   &   Err.Description,   vbCritical   +   vbOKCancel,   "错误"  
                  Exit   Sub  
          End   If  
          For   IntI   =   1   To   105  
                  StrSQL   =   "insert   into   see(name,address)values("   &   "'Xu   Shanghua"   &   Str(IntI)   &   "','SZ"   &   Str(IntI)   &   "')"  
                  On   Error   Resume   Next  
                  ObjConn.Execute   StrSQL  
                  If   Err.Number   <>   0   Then  
                          MsgBox   "执行SQL发生错误!"   &   vbCrLf   &   StrSQL   &   vbCrLf   &   "请检查这条SQL语句",   vbCritical   +   vbOKOnly,   "错误"  
                          Exit   Sub  
                  End   If  
          Next   IntI  
           
          SngTimeOut   =   Timer()   -   SngOldTime  
          MsgBox   "执行成功!"   &   "共花   "   &   SngTimeOut   &   "   秒.",   vbInformation   +   vbOKOnly,   "提示"  
          Set   ObjRs   =   New   ADODB.Recordset  
          ObjRs.Source   =   "Select   *   From   See"  
          Set   ObjRs.ActiveConnection   =   ObjConn  
          ObjRs.CursorType   =   adOpenStatic  
          ObjRs.LockType   =   adLockOptimistic  
          ObjRs.Open  
          If   Err.Number   <>   0   Then  
                  MsgBox   "创建ObjRs对象失败!"   &   vbCrLf   &   Err.Description,   vbCritical   +   vbOKOnly,   "错误"  
                  Exit   Sub  
          End   If  
          ObjRs.PageSize   =   10  
          MsgBox   "ObjRs.PageSize   =   "   &   ObjRs.PageSize   &   vbCrLf   &   _   '***************************  
                  "ObjRs.PageCount   =   "   &   ObjRs.PageCount   &   vbCrLf   &   _   '***************************  
                  "ObjRs.AbsolutePage   =   "   &   ObjRs.AbsolutePage   &   vbCrLf   &   _   '**********************  
                  "ObjRs.EOf   =   "   &   CStr(ObjRs.EOF)   &   vbCrLf   &   _   '***************************  
                  "ObjRs.BOF   =   "   &   CStr(ObjRs.BOF)   &   vbCrLf   &   _   '***************************  
                  "ObjRs.RecordCount   =   "   &   CStr(ObjRs.RecordCount)   &   vbCrLf   &   _   '*******************  
                  "ObjRs.AbsolutePosition   =   "   &   CStr(ObjRs.AbsolutePosition)   &   vbCrLf   &   _   '********  
                  "ObjRs.CursorType   =   "   &   CStr(ObjRs.CursorType)   '***************************  
          ObjRs.Close  
          Set   ObjRs   =   Nothing  
          ObjConn.Close  
          Set   ObjConn   =   Nothing  
  End   Sub  
   
  以上带*的注释输出为:  
   
  ObjRs.PageCount   =   10  
  ObjRs.AbsolutePage   =   -1  
  ObjRs.EOF   =   false  
  ObjRs.BOF   =   false  
  ObjRs.RecordCount   =   -1  
  ObjRs.AbsolutePosition   =   -1  
  ObjRs.CursorType   =   2  
   
  我把ObjRs的CursorType已经设置为adOpenStatic   (3)   为什么后面输出的是   adOpenDynamic   (2)   呢!  
  难道SQL   Server   2000   不支持静态游标类型吗?改成其他的也是一样啊。只能输出adOpenDynamic   (2)为什么啊?  
  问题点数:20、回复次数:4Top

1 楼hai2003xp(古井小调)回复于 2005-01-03 23:10:19 得分 5

//SQL   Server   2000不支持动太游标吗?  
   
  支持的Top

2 楼tmdbcd0630(梦胧)回复于 2005-01-04 11:37:49 得分 5

RS.OPEN   SQL,CONN,A,B  
   
  A:    
  ADOPENFORWARDONLY(=0)    
  只读,且当前数据记录只能向下移动  
   
  ADOPENKEYSET(=1)    
  只读,当前数据记录可自由移动  
   
  ADOPENDYNAMIC(=2)    
  可读写,当前数据记录可自由移动  
   
  ADOPENSTATIC(=3)    
  可读写,当前数据记录可自由移动,可看到新增记录  
   
  B:  
  ADLOCKREADONLY(=1)    
  缺省锁定类型,记录集是只读的,不能修改记录  
   
  ADLOCKPESSIMISTIC(=2)    
  悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。  
   
  ADLOCKOPTIMISTIC(=3)    
  乐观锁定   ,直到用Update方法提交更新记录时才锁定记录。  
   
  ADLOCKBATCHOPTIMISTIC(=4)    
  批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。  
   
  VB应该是支持这些所有的.也就是说VB应该支持动态的游标.Top

3 楼tmdbcd0630(梦胧)回复于 2005-01-04 11:39:14 得分 5

也就是输出adOpenDynamic   (2)   表示就是动态的游标.Top

4 楼tmdbcd0630(梦胧)回复于 2005-01-04 11:41:55 得分 5

不好意思,看错了楼主的问题了.不过VB应该是静态动态的游标全支持的.Top

相关问题

  • 那个大虾知道,在MS Sql server 中游标。。。。如何
  • 请教高手sql server 7的游标释放问题
  • JSP操作SQL SERVER 2000游标错误的问题
  • SQL游标的问题。
  • Ado + sql Server问题
  • 在SQL SERVER里编写触发器用的了游标,就在触发器编写的地方编游标行么,还是在别的地方编写,我在触发器中编的,可是总是说无效的游标XXX
  • 高分火线求助:因触发器里使用游标错误(游标的fetch next执行不到,导致游标不能结束),导致表被锁死,如何解决,前提:不能停止数据库的sql server 服务
  • SQL Server2000 中的游标问题
  • T-sql可以游标复制吗?
  • 有没有关于SQL SERVER 的好书 比如 详细讲解 游标 和 存续过程的使用~

关键词

  • sql server 2000
  • 数据
  • objrs
  • 游标
  • 记录
  • vbcrlf
  • objconn
  • sngoldtime
  • sngtimeout
  • 锁定

得分解答快速导航

  • 帖主:xshsoft
  • hai2003xp
  • tmdbcd0630
  • tmdbcd0630
  • tmdbcd0630

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo