很奇怪的问题,通过sql读取数据,写入recordset,但是只要sql查询中有order by (排序),就无法对读取的数据进行更改,但我程序中需要先排序然后再对数据进行操作,有选择的更新,那该怎么办啊?
Set rs = New adodb.Recordset
sql = "SELECT dbo_09311_S.chi_TH, dbo_09311_S.gxhs, dbo_滴_s.GXhst, dbo_09311_S.rdate,dbo_09311_S.bj FROM dbo_09311_S, dbo_滴_s where dbo_09311_S.gxhs=dbo_滴_s.GXhs order by dbo_09311_S.chi_TH,dbo_滴_s.GXhst"
(sql后面如果如果没有order by ,程序能正常运行,有的话就会报错:错误为 “当前记录集不支持更新,这可能是提供程序的限制,也可能是选中锁定类型的限制”)
rs.Open sql, conn, adOpenKeyset, adLockOptimistic
rs.MoveFirst
Do While Not rs.EOF
rs.Fields("bj").Value = 5
rs.MoveNext
Loop
Set rs = New adodb.Recordset
sql = "SELECT dbo_09311_S.chi_TH, dbo_09311_S.gxhs, dbo_滴_s.GXhst, dbo_09311_S.rdate,dbo_09311_S.bj FROM dbo_09311_S, dbo_滴_s where dbo_09311_S.gxhs=dbo_滴_s.GXhs order by dbo_09311_S.chi_TH,dbo_滴_s.GXhst"
(sql后面如果如果没有order by ,程序能正常运行,有的话就会报错:错误为 “当前记录集不支持更新,这可能是提供程序的限制,也可能是选中锁定类型的限制”)
rs.Open sql, conn, adOpenKeyset, adLockOptimistic
rs.MoveFirst
Do While Not rs.EOF
rs.Fields("bj").Value = 5
rs.MoveNext
Loop
conn.execute sql
rs.CursorLocation = adUseClient