用ADO连接SQL Server 2000的问题(SQL Server 2000不支持动太游标吗?)
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 的好书 比如 详细讲解 游标 和 存续过程的使用~




