
ASP如何只让相同数据只写入一次 20
sql="selecttop1ipfromstatwhereip='"&ip_sys(0)&"'"'判断是否第一次访问Setrs=server.CreateObject(...
sql="select top 1 ip from stat where ip='"&ip_sys(0)&"'" '判断是否第一次访问
Set rs=server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,1
if not(rs.bof and rs.eof) then '第一次访问则向数据库写入IP和来路
sql="insert into stat(ip,url) values('"&ip_sys(0)&"','"&ip_sys(1)&"')" '向数据库插入下载人的IP和来路
Set rs=server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,0,1
end if
以上代码执行不成功,根本不向数据库写入数据 展开
Set rs=server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,1
if not(rs.bof and rs.eof) then '第一次访问则向数据库写入IP和来路
sql="insert into stat(ip,url) values('"&ip_sys(0)&"','"&ip_sys(1)&"')" '向数据库插入下载人的IP和来路
Set rs=server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,0,1
end if
以上代码执行不成功,根本不向数据库写入数据 展开
3个回答
展开全部
将 rs.Open sql,conn,1,1
更改为rs.Open sql,conn,1,3
将if not(rs.bof and rs.eof) then
改为 if (rs.bof or rs.eof) then
RS.OPEN SQL,CONN,A,B
参数A为设定游标的类型,其取值为:
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
参数B为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
更改为rs.Open sql,conn,1,3
将if not(rs.bof and rs.eof) then
改为 if (rs.bof or rs.eof) then
RS.OPEN SQL,CONN,A,B
参数A为设定游标的类型,其取值为:
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
参数B为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
展开全部
if not(rs.bof and rs.eof) then
这句有问题的,如果是第一次就插入数据,应该是 把not 去掉。
加上not 就说明不是第一次访问了。
另外底下插入的语句也有点不对。
Rs 上面已经用过了。下面如果要用的话,要先用Rs.Close关闭后,再执行语句,不用再重复声明。。
另外直接插入语句。可以不用声明RS的。直接在判断语句里。插入以下语句
Conn.Execute("insert into stat(ip,url) values('"&ip_sys(0)&"','"&ip_sys(1)&"')" 就可以了
这句有问题的,如果是第一次就插入数据,应该是 把not 去掉。
加上not 就说明不是第一次访问了。
另外底下插入的语句也有点不对。
Rs 上面已经用过了。下面如果要用的话,要先用Rs.Close关闭后,再执行语句,不用再重复声明。。
另外直接插入语句。可以不用声明RS的。直接在判断语句里。插入以下语句
Conn.Execute("insert into stat(ip,url) values('"&ip_sys(0)&"','"&ip_sys(1)&"')" 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql="select * from [表名] where 需要比较的字段名='值'"
rs.Open sql,conn,1,3
if rs.eof then
rs.addnew
rs("字段")='值'
rs.update
end if
rs.close
rs.Open sql,conn,1,3
if rs.eof then
rs.addnew
rs("字段")='值'
rs.update
end if
rs.close
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询