主题:添加数据时如何才能从数据库的第一行添加,原来的数据一次向后串?
xinying2005
[专家分:0] 发布于 2008-06-27 15:41:00
现在需要在数据库中添加数据。
但是需要将添加的数据 从数据库的第一行添加,原来的数据库中的数据依次 向后串,(添加的数据不能覆盖原来的数据库中的数据),请问这该如何添加?
回复列表 (共18个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2008-06-27 17:41:00
数据库里的行次并没有实际意义。
看来你需要进步了解数据库的实质。
你就放到后面,查询的速度和放在前面是一样的。
板凳
我是大喊三 [专家分:3010] 发布于 2008-06-27 19:22:00
如果需要你可以通过排序等方式将数据呈现出来啊,不一定非要按什么顺序写入
3 楼
xinying2005 [专家分:0] 发布于 2008-06-27 23:23:00
两位大侠可能误会了
我是 第一次进入这个界面时调用查询故障 命令,将所有的故障记录全部显示出来,按照1-20(加入有20个故障记录的话)
但是在此界面下,可能又有新的故障出现。我想只 查询最新出现的故障,而保存原来的故障。由于最新的故障的 故障序号为1,所以 原来 排的故障记录的序号 相应都得向后串一下,比如出现一个最新故障,最新的这个故障的序号就是1,原来的1-20就得变成2-21.
4 楼
老大徒伤悲 [专家分:29120] 发布于 2008-06-27 23:54:00
增加时间字段
查询只看时间,不要看序号。
再说,序号也不一定要单调递增
5 楼
shifta [专家分:380] 发布于 2008-06-28 08:27:00
[quote]两位大侠可能误会了
我是 第一次进入这个界面时调用查询故障 命令,将所有的故障记录全部显示出来,按照1-20(加入有20个故障记录的话)
但是在此界面下,可能又有新的故障出现。我想只 查询最新出现的故障,而保存原来的故障。由于最新的故障的 故障序号为1,所以 原来 排的故障记录的序号 相应都得向后串一下,比如出现一个最新故障,最新的这个故障的序号就是1,原来的1-20就得变成2-21.
[/quote]
你可以倒过来思考啊,将错误从小到大编号,要查最新的错误时只要查询编号最大的不就行了吗,或者查询时按照序号从大到小排序不就行了。
6 楼
jianghongbo1 [专家分:410] 发布于 2008-06-28 09:39:00
重新生成一个新的表,新的数据addnew
adoc1.recordset movelast
do while .recocordset.bof=false
adodc2.recordset("")=adodc1.recordset("")
......
adodc1.recordset.moveprevious
loop
7 楼
xinying2005 [专家分:0] 发布于 2008-06-28 11:34:00
不能这样
编号越小 故障越新
这不是我能 改变的
8 楼
xinying2005 [专家分:0] 发布于 2008-06-28 11:45:00
我现在的程序 在添加新的故障记录时
数据库中的 序号已经 按照从小到大的顺序排列,
但是
datagrid中的、数据 并没有按照从小到大的顺序排列。
当新的故障出现时, 添加的记录还是在
datagrid 的最后行。
9 楼
shifta [专家分:380] 发布于 2008-06-29 12:40:00
楼主是不是用datagrid控件绑定adodc控件作为数据源?
如果是的话,建议你将adodc控件的命令类型改为adCmdText,表或存储过程名称改为
select * from 错误表 order by 错误编号
10 楼
shifta [专家分:380] 发布于 2008-06-29 12:45:00
[quote]
不能这样
编号越小 故障越新
这不是我能 改变的[/quote]
如果真是要这样的话,在每次产生新的错误时,以前已保存错误的编号自动加1,可以用
SQL语句 "update 错误表 set 编号=编号+1" 来修改,新增加的错误其编号设为1.
我来回复