请问一个查询数据的问题 ASP ACCESS

feichang3000 2009-09-18 06:58:24
table a ,字段 a , 数字型
有一条记录

为什么 update 后, 查询的结果是 原来旧结果, 不是新结果呢 ?
为什么 oldqty= newqty 呢?


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/note.asp" -->
<!--#include file="Connections/conn.asp" -->
<%
response.ContentType="text/xml"
response.write("<?xml version='1.0' encoding='gb2312'?>")
response.write("<root>")

Dim MM_editCmd
Dim Recordset

Set Recordset = Server.CreateObject("ADODB.Recordset")
Recordset.ActiveConnection = MM_conn_STRING

Recordset.Source = "select a from a"

Recordset.CursorType = 0
Recordset.CursorLocation = 3 'Recordset.RecordCount
Recordset.LockType = 1
Recordset.Open()
'取旧结果
dim oldqty
oldqty=Recordset.Fields.Item("a").Value

response.write("<oldqty>" & oldqty & "</oldqty>")

Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_conn_STRING


'更新
MM_editCmd.CommandText = "update a set a=a-1"
MM_editCmd.Execute

' 检查

Recordset.close()
Recordset.Source = "select a from a"
Recordset.CursorType = 0
Recordset.CursorLocation = 2 'Recordset.RecordCount
Recordset.LockType = 1
Recordset.Open()

dim newqty
newqty=Recordset.Fields.Item("a").Value

response.write("<newqty>" & newqty & "</newqty>")

MM_editCmd.ActiveConnection.Close

Recordset.Close()
Set Recordset = Nothing

response.write("</root>")


%>
...全文
115 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
feichang3000 2009-09-20
  • 打赏
  • 举报
回复
能不能 详细 说一下

把记录集设成开放式的就好了。 是怎么搞的 ?
feichang3000 2009-09-20
  • 打赏
  • 举报
回复
是用这个来更新啊
Set MM_editCmd = Server.CreateObject("ADODB.Command")
不是 Recordset 更新啊, 跟 Recordset 的 locktype 有关系么


第一次运行
<?xml version="1.0" encoding="gb2312" ?>
- <root>
<oldqty>82</oldqty>
<newqty>82</newqty>
<result>SUCCESS</result>
</root>
第二次运行
<?xml version="1.0" encoding="gb2312" ?>
- <root>
<oldqty>81</oldqty>
<newqty>81</newqty>
<result>SUCCESS</result>
</root>
第三次运行
<?xml version="1.0" encoding="gb2312" ?>
- <root>
<oldqty>80</oldqty>
<newqty>80</newqty>
<result>SUCCESS</result>
</root>
  • 打赏
  • 举报
回复
锁定,设置为可读,还能更改数据,真恕我没见过

feichang3000 2009-09-20
  • 打赏
  • 举报
回复
还是没有得到想要答案

现在这个程序是可以正常减少数量的, 是 OK 的

但是第2次查询的时候, 并没有返回正确的答案

好象和 LockType 没有关系, 我改 1,2,3,4 试过了, 都没有影响结果

强烈建议亲自运行一下,不要空想结论是怎样的

  • 打赏
  • 举报
回复
LockType

自己看你设置的这个为只读,能更新吗?
  • 打赏
  • 举报
回复
LockType
Recordset 对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设 值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及 adLockBatchOptimistic等,分述如下:

-------------------------------------------------------------
常数 常数值 说明
--------------------------------------------------------------
adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、
删、改的操作。 
zxzcad 2009-09-20
  • 打赏
  • 举报
回复
看看你的文件目录权限 如果是NTFS文件系统 添加EVEYONE的所有权限应该就行了
mkcat 2009-09-18
  • 打赏
  • 举报
回复
UP
newsera 2009-09-18
  • 打赏
  • 举报
回复
把记录集设成开放式的就好了。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧