是不是UpdateBatch不支持sybase

来源:百度知道 编辑:UC知道 时间:2024/04/19 11:56:25
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClientBatch
dim sql As String
if 数据库为sqlsever then (数据库为sqlsever有一个表达式,各位不用在这费思量)
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sa;PWD=2406;Initial Catalog=rtdb2;Data Source=10.4.1.9"
end if
if 数据库为sybase then
cn.Open "Provider=MSDASQL.1;DRIVER={Sybase System 11}; Persist Security Info=False; DSN=;
SRVR=Sybase_EEE;DB=rtdb;UID=rtdb;PWD=digital1"
Endif
sql = "select * from ST_RVAV_R"
rs.Open sql, cn, adOpenStatic, adLockBatchOptimistic
If (Not rs.EOF) Then
rs.MoveFirst
End If
While (Not rs.EOF)
If 条件 then
rs.delete adAffectCurrent
end if
rs.MoveNext
Wend
rs.UpdateBatch
如果数据库是sqlsever则运行完全正常,没有一点问题,可以删掉满足条件的记录。但是当数据库是sybase时,其select语句是没有一点问题的,可以在datagrid控件中显示出查询出来的数据,说明数据库连接正常,但当运行到最后一句rs.UpdateBatch时出现 数据提供程序或其它服务返回 E_FA

是不是返回多个结果集? 查看具体错误,老给看一个E_FAIL没用
Dim bHasDelete As Boolean
bHasDelete = FALSE
While (Not rs.EOF)
If 条件 then
rs.delete adAffectCurrent
bHasDelete = TRUE
end if
rs.MoveNext
Wend
If TRUE = bHasDelete Then
rs.UpdateBatch
End If