小心数据集乱套

作者在帮学校做项目时,想用二分法对ASP数据集数据进行选取,却不知如何获取首尾记录。测试发现asp数据集可能乱套,用常规方法获取最大最小值可能出错,且数据排列受Sql和RecordSet双方控制,操作数据前最好先整理排序。

最近帮学校做一个东西,大概两天就弄出来一个,而且今天也上缴了,但是总是觉得有一些担心。突然想测试测试,本来是想测试一下用二分法对数据进行选取的,但是,不知道怎么能得到Last Record And First Record,所以,就想慢慢测试测试,怎么能得到Last And First Record,但是实际中的测试吓一大跳。asp数据集的有可能乱套。

以前,写asp读取数据时,总是用“select * from table”直接选取数据,然后用

If Not Rs.Eof Then

   Rs.MoveLast

       Do While Not Rs.Bof Then

            Response.Write Rs(“ID“)

            .....

      Loop

End If

简单的说就是用一个循环直接读取数据库所有数据,但是如果数据有几万条的话,速度是可想而知的了,所以想用二分法对数据进行选择显示,但是不知道怎么能得到开始和最后的数据,又想到了Rs.Bof? Rs.Eof 本来是想怎么能得到字段ID的最大值,最小值,然后好比较的,但是实际操作中发现,如果你用下面的东西,不一定得到最大值和最小值:

If Not Rs.BOf Then
    Rs.MoveFirst
    frsID=Rs("ID")
End If
If Not Rs.Eof Then
    Rs.MoveLast
    lstID=Rs("ID")
End If
Do While Not Rs.Bof
     response.Write "ID is "&rs("ID")&""
     rs.Moveprevious
Loop

response.Write "First ID="&frsID&""
Response.Write "Last ID="&lstID&""

显示的frsID=6,lstID=15,可是在显示的全体数据中有一条数据的ID为16,也就是说最大的ID!=lstID(以前我总是认为这个是想等),最后检查发现是sql语句有问题,改成“Select * from Login Order By ID Asc”时,显示:

ID is 16
ID is 15
ID is 14
ID is 13
ID is 12
ID is 11
ID is 10
ID is 8
ID is 7
ID is 6
First ID=6
Last ID=16
将sql换成Select * from Login Order By ID Desc”时,却是:

ID is 6
ID is 7
ID is 8
ID is 10
ID is 11
ID is 12
ID is 13
ID is 14
ID is 15
ID is 16
First ID=16
Last ID=6

这样两个数据的排列完全和sql中要求的不一样(本来是Asc的再显示的时候是Desc,向Desc的现实的确实Asc的),而且显示出来的东西和Login表中数据也完全不一样。

结论:数据的排列完全是靠Sql和RecordSet双方控制的。在你没有对指针记录操作时,指针记录是乱得,最好对数据操作时,先整理一下数据的排列,让它能够按序排列,方便以后操作。


?

转载于:https://www.cnblogs.com/AloneSword/archive/2004/08/23/2237739.html

### 如何修复Linux系统中的用户权限配置错误 当遇到Linux系统的用户权限混乱问题时,可以通过一系列方法逐步排查并修复。以下是一些常见的操作和建议: #### 1. 进入Root Shell环境 如果当前用户的权限不足以执行必要的修复工作,则可以尝试通过单用户模式或其他方式进入root shell环境[^1]。 #### 2. 检查并修复关键命令的权限 一些核心工具(如`sudo`, `su`, `mount`, 和`umount`)对于正常运行至关重要。这些工具通常需要设置特定的权限位以允许特权提升或挂载设备等功能。以下是具体的修复步骤: - **检查并修复`sudo`权限** ```bash ls -l /usr/bin/sudo chmod 4755 /usr/bin/sudo ``` - **检查并修复`su`权限** ```bash ls -l /bin/su chmod 4755 /bin/su ``` - **检查并修复`mount`和`umount`权限** ```bash ls -l /bin/mount /bin/umount chmod 4755 /bin/mount /bin/umount ``` - **检查其他重要系统命令** 对于诸如`pkexec`, `passwd`, 或者`chsh`这样的命令,也需要确认其权限是否正确: ```bash ls -l /usr/bin/pkexec /usr/bin/passwd /usr/bin/chsh ``` 若发现问题,可采用相同的方式调整权限: ```bash chmod 4755 /path/to/command ``` 上述过程有助于确保基本的操作功能恢复正常。 #### 3. 配置文件修正 某些情况下,权限混乱可能是由于配置文件被意外修改引起的。例如,`/etc/passwd` 文件记录了所有本地账户的信息;而 `/boot/grub/grub.conf` 则涉及引导加载器的相关参数。如果有证据表明这些问题源于配置文件编辑失误,则可以直接对其进行更正恢复[^2]。 #### 4. 日志分析 为了进一步了解可能导致权限错乱的具体原因,应该查阅系统日志。这一步骤可以帮助识别是否存在恶意活动或者其他潜在风险因素。利用`dmesg` 命令能够获取最近发生的事件详情: ```bash dmesg | less ``` 此外还可以查看专门的日志文件比如/var/log/messages或者journalctl输出来辅助诊断[^3]。 #### 5. SSH密钥及其他敏感数据保护 最后需要注意的是,在重新建立安全机制之后,应当适当降低SSH私钥等相关资源的访问级别以防泄露风险。例如下面的例子展示了如何将几个常见SSH组件设为仅属主读写属性: ```bash chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key ``` 这样做的目的是减少未经授权人员接触到机密资料的机会[^4]。 完成以上各项措施后记得重启计算机使更改生效,并测试各个服务能否按预期运作无误为止。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值