L ldaan3 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-19 #22 多谢pwq1,这样可以了。 还是有疑问,那这样的话,我进行每进行一次删除或者是增加, 那么都要adoquery.close ,然后在 open 一次, 我的表中大约有1 万条数据, 这样删除一次的动作 到 重新排好,不是很慢??? 其他人对此有什么看法呢?
多谢pwq1,这样可以了。 还是有疑问,那这样的话,我进行每进行一次删除或者是增加, 那么都要adoquery.close ,然后在 open 一次, 我的表中大约有1 万条数据, 这样删除一次的动作 到 重新排好,不是很慢??? 其他人对此有什么看法呢?
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #23 有没有搞错?你的ID字段是什么类型的?不是长整型的吗? 字符型才用引号,数值型不用引号!
L ldaan3 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #24 以我的经验,对一个数据集open 是最花时间的事情。 不知大家有没觉得?
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #25 如果这个字段不是其它表要引用的,和其它功能没有关系,只有在查看时有用,那还不如 用RecNo来取得记录的序号
M mywyn Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #26 to ldaan3: >>对一个数据集open 是最花时间的事情 是不是最花时间我不知道,不过我打开6000条记录从没超过200毫秒。当然,前提是 你没有BLOB数据如图像。
L ldaan3 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #27 呵呵,我第一次打开一个数据集时超慢,花了5秒钟,而数据还不到100!!! 一步一步调试,原来在执行adoquery1.active;=true那里停顿了好久,才知道原来是那里的问题。
C cb_hfxy Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #28 我也碰到过这样的问题,而且跟麻烦。 就是数据表的排序不按自增字段排序。 我设了主键的啊。 为什么哪??
D dz2050 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-21 #31 1、自增字段不可能 2、增加一个数据表纪录当前纪录号,增加时加1,删除时减1,只是为加速用 3、当删除纪录号小于当前纪录号时,表中记录向前移动 注:这是什么要求?太费时!
L luosheng Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-21 #32 ldaan3:你后面是怎么解决的啊?我现在也有这个问题,打开一个才2个字段,1条记录的数据 库居然花了1秒,分我可以另外给
A Aiirii Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-21 #33 用update,再优化cachesize.应该很快的. 我不知道你的所谓1,2,3,4的序号有没有前后意义,如果没有,可以这样,将第2条删除啦,就将最后地一条地序号改为2。
L ldaan3 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-22 #34 看了sql 的触发器语句说明,明白了一些。 可是不知道在delphi 中是怎么样使用触发器的,如: create trigger mydelete on 111 for delete as update …… 这个触发器语句是放在其他一个procedure 声明呢, 还是放在下面的adoquery1.sql.add()里面呢? 或者是其它地方呢? procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin j:=0; j:=adoquery1.Fields[0].AsInteger; adoquery1.Delete; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('update 111 set 序号=序号-1 where 序号>j'); adoquery1.ExecSQL; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from 111'); adoquery1.Active:=true; end;
看了sql 的触发器语句说明,明白了一些。 可是不知道在delphi 中是怎么样使用触发器的,如: create trigger mydelete on 111 for delete as update …… 这个触发器语句是放在其他一个procedure 声明呢, 还是放在下面的adoquery1.sql.add()里面呢? 或者是其它地方呢? procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin j:=0; j:=adoquery1.Fields[0].AsInteger; adoquery1.Delete; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('update 111 set 序号=序号-1 where 序号>j'); adoquery1.ExecSQL; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from 111'); adoquery1.Active:=true; end;