用ClientDataSet更新数据表,删除某行之后就把所删除的记录之后的所有记录的行号都减一,怎样能实现呢?麻烦给个源码!
谢谢了!
在线等!
10 个解决方案
#1
Clientdataset改不了自增字段的值. 最好用SQL更新, 不过更新后.CLIENTDATESET不显示更新后的值.可能会造成关连错误.所以最好不要这样做.
#2
新版的ehlib支持自动编号
#3
楼主用SQL更新。
#4
用SQL触发器可以控制
#5
1、行号不能做关键字;
2、先排序
3、更新时,给行号字段重新编号;
ClientDataSet.First;
while not ClientDataSet.eof do
begin
ClientDataSet.edit;
ClientDataSet.FieldByName('行号字段').asInteger := ClientDataSet.RecNo;
ClientDataSet.next;
end;
2、先排序
3、更新时,给行号字段重新编号;
ClientDataSet.First;
while not ClientDataSet.eof do
begin
ClientDataSet.edit;
ClientDataSet.FieldByName('行号字段').asInteger := ClientDataSet.RecNo;
ClientDataSet.next;
end;
#6
我怎么就没看到过新帖子。。
#7
如果是自增字段的值,改变不了
如果不是就直接用Sql语法Update吧,然后ClientDataSet刷新一下
或者循环ClientDataSet一笔笔修改
如果不是就直接用Sql语法Update吧,然后ClientDataSet刷新一下
或者循环ClientDataSet一笔笔修改
#8
10年的帖子?
#9
真是服了你了,居然能将这陈年老帖给翻出来
#10
select ROWID +....???
#1
Clientdataset改不了自增字段的值. 最好用SQL更新, 不过更新后.CLIENTDATESET不显示更新后的值.可能会造成关连错误.所以最好不要这样做.
#2
新版的ehlib支持自动编号
#3
楼主用SQL更新。
#4
用SQL触发器可以控制
#5
1、行号不能做关键字;
2、先排序
3、更新时,给行号字段重新编号;
ClientDataSet.First;
while not ClientDataSet.eof do
begin
ClientDataSet.edit;
ClientDataSet.FieldByName('行号字段').asInteger := ClientDataSet.RecNo;
ClientDataSet.next;
end;
2、先排序
3、更新时,给行号字段重新编号;
ClientDataSet.First;
while not ClientDataSet.eof do
begin
ClientDataSet.edit;
ClientDataSet.FieldByName('行号字段').asInteger := ClientDataSet.RecNo;
ClientDataSet.next;
end;
#6
我怎么就没看到过新帖子。。
#7
如果是自增字段的值,改变不了
如果不是就直接用Sql语法Update吧,然后ClientDataSet刷新一下
或者循环ClientDataSet一笔笔修改
如果不是就直接用Sql语法Update吧,然后ClientDataSet刷新一下
或者循环ClientDataSet一笔笔修改
#8
10年的帖子?
#9
真是服了你了,居然能将这陈年老帖给翻出来
#10
select ROWID +....???