5 555 Unregistered / Unconfirmed GUEST, unregistred user! 2001-05-18 #1 access数据库插入的记录是放在最后,可是我的应用中要求可以 象Excel一样在中间插入一条记录,打印时按插入得位置打印。 如何实现?
Z zhangkan Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-19 #2 你有程序中用Insert不行吗?而且,你也可以用排序来搞定呀.实际上,数据库无论插入或追加 都是在最后一笔,只不过用到了索引,你才觉得他是插入到中间的.
C coaco Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-20 #4 MDB: 如果你用的是BCB,DELPHI的话,INSERT和APPEND是有区别的,市面有个软件叫<<库管王>>,是用delphi 做的(据说是五年前做的),她的商品目录做得非常好,其中重要的一点就是,产品排序是用INSERT插入 的,这样查询时不用排序,(化整为零,用户维护商品编码总是相对少一些,而查询机会多得多)我做了一 个五六千条记录的TreeView速度飞快(用了她的数据),比递归快了不知多少倍. 相反,如果用ACCESS或者是VB,好象全部都是APPEND? 序号是最终的解决办法,总能解决问题的,不过要维护起来得仔细考虑,每次插入记录就得维护一遍序号, 或许有好的算法?
MDB: 如果你用的是BCB,DELPHI的话,INSERT和APPEND是有区别的,市面有个软件叫<<库管王>>,是用delphi 做的(据说是五年前做的),她的商品目录做得非常好,其中重要的一点就是,产品排序是用INSERT插入 的,这样查询时不用排序,(化整为零,用户维护商品编码总是相对少一些,而查询机会多得多)我做了一 个五六千条记录的TreeView速度飞快(用了她的数据),比递归快了不知多少倍. 相反,如果用ACCESS或者是VB,好象全部都是APPEND? 序号是最终的解决办法,总能解决问题的,不过要维护起来得仔细考虑,每次插入记录就得维护一遍序号, 或许有好的算法?
H htw Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-21 #5 想得真复杂, 你管insert时是什么位置, 只要打印输出时位置对了不就行了。 看来是缺乏数据库基本常识
C coaco Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-21 #7 555: 这么想并没有什么不对,不过只是为的打印,的确是没有这样的必要,但是这个问题这样考 虑还是有好处的.前面有位朋友说,插入的位置总在表的未端,我表示怀疑,我们知道,即使简 单如链表也是可以做插入操作的,何况关系数据库? 很抱歉我没有相关的资料. 如果不是赶工,回头想想这类问题还是很有好处了,我原来在ORACLE中曾经做过很复杂的触 发器,就是因为没有当时没有仔细的考虑,后来呢?在维护的时候,干脆删了,用简单的方法就行 了,嘻嘻 建议提问的朋友多研究研究SQL语言,做数据库可是吃饭的家伙.
555: 这么想并没有什么不对,不过只是为的打印,的确是没有这样的必要,但是这个问题这样考 虑还是有好处的.前面有位朋友说,插入的位置总在表的未端,我表示怀疑,我们知道,即使简 单如链表也是可以做插入操作的,何况关系数据库? 很抱歉我没有相关的资料. 如果不是赶工,回头想想这类问题还是很有好处了,我原来在ORACLE中曾经做过很复杂的触 发器,就是因为没有当时没有仔细的考虑,后来呢?在维护的时候,干脆删了,用简单的方法就行 了,嘻嘻 建议提问的朋友多研究研究SQL语言,做数据库可是吃饭的家伙.
5 555 Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-22 #8 如果单利用索引,不可能可以像excel一样的效果。 看来序号+索引是最终的解决办法,但如何维护序号呢?有什么好办法?
C coaco Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-22 #9 看来你是真的不明白: 1.可以插入记录,简单的表,用DBGrid让用户插入不就行了,你先试试,这和索引没什么关 系. 2.如果一定要用序号,维护序号对于单表单用户来说,最起码在插入记录后重新再刷一遍 (从一开始数,...)不就行了,先要解决问题,然后再考虑用什么办法解决问题更好... 3.最好能说得详细一点.客户是什么要求,什么样的情况,一般来说,报表只要根据某个关 键字用 Order By [...]就可能解决问题,只有特殊情况下,才需真实的记录客户录入记录的 位置,很少见的.
看来你是真的不明白: 1.可以插入记录,简单的表,用DBGrid让用户插入不就行了,你先试试,这和索引没什么关 系. 2.如果一定要用序号,维护序号对于单表单用户来说,最起码在插入记录后重新再刷一遍 (从一开始数,...)不就行了,先要解决问题,然后再考虑用什么办法解决问题更好... 3.最好能说得详细一点.客户是什么要求,什么样的情况,一般来说,报表只要根据某个关 键字用 Order By [...]就可能解决问题,只有特殊情况下,才需真实的记录客户录入记录的 位置,很少见的.
5 555 Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-29 #10 可能大家没有理解我的意思。 我的客户是要求可以象Excel一样对行进行操作。 其目的是管理一个档案目录,其顺序比较复杂,无法按那个字段排序,要人工安排。 如果要自动排序,必须应用序号。
P proman Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-01 #12 用序号应该比较简单的吧,先把序号后的记录都加1,用一条Sql就可以实现,再添加记录到 当前序号就可以了.
C coaco Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-01 #13 曾见过一个程序,也是TreeView相关的,一开始总是抱有幻想,以为ACCESS可以有办法插入物理位置,其实用ACCESS多年了,DAO似乎本身根本就没有insert(), 看来只有APPEND了,:-( 有时候确实要记录数据的物理位置,比如TreeView操作,插入节点,上下文(结点)相关 当然办法是有的: 用序号,记录当前的序号,插入记录后,后面的记录序号全部加+1,打印的时候用序号排序,后面的程序用个事务一次性搞定 对了,在序号一栏用索引就行了,直接打开表,就不用排序了.
曾见过一个程序,也是TreeView相关的,一开始总是抱有幻想,以为ACCESS可以有办法插入物理位置,其实用ACCESS多年了,DAO似乎本身根本就没有insert(), 看来只有APPEND了,:-( 有时候确实要记录数据的物理位置,比如TreeView操作,插入节点,上下文(结点)相关 当然办法是有的: 用序号,记录当前的序号,插入记录后,后面的记录序号全部加+1,打印的时候用序号排序,后面的程序用个事务一次性搞定 对了,在序号一栏用索引就行了,直接打开表,就不用排序了.
C coaco Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-01 #14 谢谢proman,我居然忘了用SQL直接写,该打,呵呵
L leejoy Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-02 #15 to:555 你是不是档案目录的字段为文本型而且很长,无法排序。 插入数字型的序号+proman的做法就因该可以;