(给你我的所有)请问:用DBD编辑paradox7的表,发现其最左边有一行序号,(代表记录的序号),不知如何在程序中使用它(200分)

  • 主题发起人 主题发起人 intdephi
  • 开始时间 开始时间
I

intdephi

Unregistered / Unconfirmed
GUEST, unregistred user!
(给你我的所有)请问:用DBD编辑paradox7的表,发现其最左边有一行序号,(代表记录的序号),不知如何在程序中使用它
 
是不是recno
 
直接在SQL中怎么用?
 
怎样把它select出来?
 
比如我要在第一条记录和第二条记录中插入一行,使新插入的记录的序号为2,然后其余大余
2的序号分别加一,我看DBD(database desktop) 就是这样做的,但DEPHI程序中(我用TQUERY
和DBRID)如何做到这样啊。
如:
1 张
2 罗
3 李
4 何
在1,2 中插入一条赵
变为
1 张
2 赵
3 罗
4 李
5 何
 
有没有人会啊,我好急
 
在数据库中的物理顺序没有太大意义,你可以建立索引和主键实现嘛
 
pp虫,具体点晒
 
没什么用的,你如果要在程序显示记录时用它,
加个计算字段,显示dataset.recno就行了。
 
建议:
1。增加一个字段,并且设为主键,用它存储顺序
2。数据库的数据物理存储顺序不可能更改,
只有通过select的order by 实现排序
所以:select * from table orderby 新增字段
 
那也许是我的数据表设计有问题:比如说我有一些数据呈线性(如:名次表)排列,现在我要在程序中体现
这种直线关系,该如何设计我的表使得我以后在这条线上任意处插入一条记录(转学来一个新生)时,该记录能
融入这种直线关系,并找到自己的位置(新生自己的名次,比如他学习很好,是第一名,那么我
们后面的人都得让他了,名次分别加一)。
谢了。
 
数据库中就不用设置这样一个名次的字段了,可以通过学习成绩排序得到名次的。
select * from xxx order by 学习成绩
 
对,你说的不错,我的‘比如’可能不太确切,但我是想实现这种功能,那比如说是
铁路上的某一段站名,现在铁路部门要在其中加一个站(有这种可能吧),我查询出
的数据应该把这种直线关系体现出来,该怎么做啊?
 
你在程序中使用Ttable,然后按鼠标右键,弹出设置精灵,添加一个计算字段,
在程序中需要的地方,自己付值,很容易,或者用该计算字段的expression。
 
zjgo兄,能不能说明白点啊,我刚刚接触D6
鼠标右键不是弹出的右键菜单吗里面没有设置精灵a
 
用DBD编辑paradox7的表,其最左边一行序号,代表记录号,程序中直接通过RecNo调用。
另外,如果你真的需要有一个显式的字段的话,直接将它的值付为RecNo就可以了。
你说的排序问题可参照PP虫的帖子:
select * from xxx order by 学习成绩
就可以了
 
这两天太忙没有上来,实在对不住,但我想我的问题还没有解决,
我的原意是在两条记录之间插入一条记录,并改变原来的记录顺序,如此
1 张
2 罗
3 李
4 何
在1,2 中插入一条赵
变为
1 张
2 赵
3 罗
4 李
5 何
赵的记录在原1,2之间,这样一来赵变2,罗变3,并在DBGRID中显示出来
 
记住要插入记录的序号如No,比如原来表中的序号字段为RecNo,则插入之前先更新原表
中的数据:
  Update 原表 Set RecNo = RecNo + 1 Where Recno >= No
之后,执行插入操作!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部