delphi真的无法实现插入行吗,一直困扰我多年

B525068254 2015-05-06 07:49:20
这个问题影响我很多年,虽然不是重要,比如做财务凭证时需要用到插入行,但是我一直没有能够实现,有时候我没办法我在数据保存后通过存储过程来更新排序编码,难道delphi真的无法实现吗

ADOQuery2.Append;之后突然想在这一行前面插入一行,delphi真的没有办法吗
...全文
571 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
利客阿平 2015-07-02
  • 打赏
  • 举报
回复
相信谁都遇到了这个问题,我也是碰到这个问题,客户录入订单时,也是要中间插入行的,可以一直没法解决,也是用的dbgrideh,上面说的这些都是没用的解决方案。
haitao 2015-05-19
  • 打赏
  • 举报
回复
关系数据库,它的行本身没顺序的 都是在输出时加上order by才有顺序意义 希望在输出时,a行在b和c之间,就让a的排序字段值在b和c的排序字段值之间,即可
B525068254 2015-05-19
  • 打赏
  • 举报
回复
引用 31 楼 sz_haitao 的回复:
关系数据库,它的行本身没顺序的 都是在输出时加上order by才有顺序意义 希望在输出时,a行在b和c之间,就让a的排序字段值在b和c的排序字段值之间,即可
也不完全是,如果用stringgrid就能实现,感知控件无法实现
B525068254 2015-05-17
  • 打赏
  • 举报
回复
引用 28 楼 wjs_002 的回复:
只能说楼主是死脑筋,你不想想,假如有100万条数据,你在中间插1条,让这条数据之后的50万条数据再顺序往后移动一下,不是不能做到(对数据库设计者而言),但肯定会牺牲效率。要是有100亿条数据,那就不是效率的问题,而是能不能实现的问题。 其实无论是编程还是自然界,你眼晴所看到的东西都不一定是真实的,比如你看到一个按钮,真有一个按钮吗?其实不过是一个图像而已;你看到的是太阳绕地球转,而实际是地球绕太阳转。所以不要太较真。只要打印出来是我们要的效果就行。
哎,没有说到点到,保存后插入我早就实现了,有啥意思!我是想是说向用友金碟一样实现插入行通过感知控件是无法实现的,你难道要求输凭证也是保存后再插入呀,我宁愿没有这个功能
B525068254 2015-05-16
  • 打赏
  • 举报
回复
引用 25 楼 lyhoo163 的回复:
问题已经解决,随意插入任何一行,还可以让一行数据上下移动。排序仍然保持,移动插入的变化,可让打印更满足用户的要求。
解决啥,你这个方法只是保存后对排序字段进行修改而已,我早就实现了,还是没有解决,反正这个问题问了几年了都没有解决
wjs_002 2015-05-16
  • 打赏
  • 举报
回复
只能说楼主是死脑筋,你不想想,假如有100万条数据,你在中间插1条,让这条数据之后的50万条数据再顺序往后移动一下,不是不能做到(对数据库设计者而言),但肯定会牺牲效率。要是有100亿条数据,那就不是效率的问题,而是能不能实现的问题。 其实无论是编程还是自然界,你眼晴所看到的东西都不一定是真实的,比如你看到一个按钮,真有一个按钮吗?其实不过是一个图像而已;你看到的是太阳绕地球转,而实际是地球绕太阳转。所以不要太较真。只要打印出来是我们要的效果就行。
lyhoo163 2015-05-16
  • 打赏
  • 举报
回复
楼上说的好! 楼主的问题,关键是没有找到关键点: 关于数据集的排序问题,读入DBGrid,涉及到三个层次的排序: (1)数据库表中的物理排序; (2)读入数据集后的排序; (3)DBGrid中的排序。 三者不是一个东西,但关系以非常密切。 关键是在DBGrid这一层做到任意排序和位移即可。
天行归来 2015-05-15
  • 打赏
  • 举报
回复
楼主看下delphi的在线帮助 TDataSet.Insert 方法就知道原因。 如果用户TADO数据集相关组件要解决这个问题,应该得去改写一些代码了。
B525068254 2015-05-15
  • 打赏
  • 举报
回复
引用 23 楼 npkaida 的回复:
用数据感知组件是可以实现的。 以主从数据表为例: 主表: ID(主键),其它字段,。。。 1,第一条记录内容,。。。 2,第二条记录内容,。。。 。。。 从表(复合主键:主表ID+从表ID): 主表ID,从表ID,其它字段,。。。 1,1,1AAAA 1,2,1BBBB 2,1,2AAAA 2,2,2BBBB 2,3,2CCCC 假定要在 2,2,2BBBB 之前插入一条记录 必须先修改当前从表ID和大于当前从表ID的从表ID(3 改为4,2 改为 3),然后添加新纪录 2,2,2DDDD 2,1,2AAAA 2,2,2DDDD (这是新插入的内容) 2,3,2BBBB (从表ID:=从表ID+1) 2,4,2CCCC(从表ID:=从表ID+1)
哎,从表ID的从表ID你是如何来的,是保存以后产生的吧,如果不是,如何来,这个不知道试了多少遍了,别想了,理论上的东西方
lyhoo163 2015-05-15
  • 打赏
  • 举报
回复


问题已经解决,随意插入任何一行,还可以让一行数据上下移动。排序仍然保持,移动插入的变化,可让打印更满足用户的要求。
npkaida 2015-05-13
  • 打赏
  • 举报
回复
用数据感知组件是可以实现的。 以主从数据表为例: 主表: ID(主键),其它字段,。。。 1,第一条记录内容,。。。 2,第二条记录内容,。。。 。。。 从表(复合主键:主表ID+从表ID): 主表ID,从表ID,其它字段,。。。 1,1,1AAAA 1,2,1BBBB 2,1,2AAAA 2,2,2BBBB 2,3,2CCCC 假定要在 2,2,2BBBB 之前插入一条记录 必须先修改当前从表ID和大于当前从表ID的从表ID(3 改为4,2 改为 3),然后添加新纪录 2,2,2DDDD 2,1,2AAAA 2,2,2DDDD (这是新插入的内容) 2,3,2BBBB (从表ID:=从表ID+1) 2,4,2CCCC(从表ID:=从表ID+1)
daile80 2015-05-13
  • 打赏
  • 举报
回复
引用 18 楼 B525068254 的回复:
[quote=引用 16 楼 lyhoo163 的回复:] 先录入数据,最后再录入排序序号。再更新一次,即可。
哎,还是要录入序号,实际还是没有解决问题!!无法实现像用友金碟那样随时可以插入行! 15楼的兄弟可能没有理解我的意思,我们都是用的感知控件,你的方法不好实现,并不是做一行就保存一行的!![/quote] 金碟用友不是用的数据感知组件 你如果是真的很想要实现这个效果,只能换StringGrid了.
B525068254 2015-05-13
  • 打赏
  • 举报
回复
引用 21 楼 jiahui002 的回复:
这个问题很好解决吧: 1、以某个字段排序; 2、序号临时生成(每次更新或刷新时)。 序号哪用输入?尽误导人
呵呵,都是纸上谈兵,你试了就知道,序号哪里来?? 金碟用友不是用的数据感知组件 你如果是真的很想要实现这个效果,只能换StringGrid了. -----------------20楼这句话说对了
jiahui002 2015-05-13
  • 打赏
  • 举报
回复
这个问题很好解决吧: 1、以某个字段排序; 2、序号临时生成(每次更新或刷新时)。 序号哪用输入?尽误导人
B525068254 2015-05-12
  • 打赏
  • 举报
回复
看来用感知控件是无法支实现的
B525068254 2015-05-12
  • 打赏
  • 举报
回复
引用 16 楼 lyhoo163 的回复:
先录入数据,最后再录入排序序号。再更新一次,即可。
哎,还是要录入序号,实际还是没有解决问题!!无法实现像用友金碟那样随时可以插入行! 15楼的兄弟可能没有理解我的意思,我们都是用的感知控件,你的方法不好实现,并不是做一行就保存一行的!!
DelphixpeFan 2015-05-11
  • 打赏
  • 举报
回复
没弄明白大家在讨论什么问题,楼主的意思在保存前就要能插入,那就做个缓冲临时表,先把要保存的数据一条一条写到这个临时表里,要保存的时候排好序一块提交,再清空临时表;如果是要保存后再调整打印顺序,那用lyhoo163 的方法完全可以实现,更换排序的值即可.
lyhoo163 2015-05-11
  • 打赏
  • 举报
回复
打印前,重新显示一下,按要求排序了。打印即可。
lyhoo163 2015-05-11
  • 打赏
  • 举报
回复
先录入数据,最后再录入排序序号。再更新一次,即可。
B525068254 2015-05-10
  • 打赏
  • 举报
回复
引用 10 楼 tcmakebest 的回复:
何谓前一行,何谓后一行?行与行之间早就不存在这种关系了.前后顺序应该以字段值的大小比较来确定.
兄弟,你没有遇到这样的需求而已,典型的就是财务凭证,有时相同类型的凭证打印在一起看起来比较好看,传统的方法可以删了再输,但这样太麻烦了,所以要插入行,但我摸索了好久都没有解决,只能保存了再上下移动,但这样太不方便了
引用 13 楼 lyhoo163 的回复:
打印效果:
是的,不错,我要的就是这个结果,但是这个排序字段你是如何处理的,是保存后再修改排序字段还是保存前处理的,保存后再插入或者上下移动是没有意义的!
加载更多回复(13)

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧