标题:如何使用缓冲让多用户操作更流畅,在什么情况下使用呢???
只看楼主
wabc327
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2021-2-4
结帖率:28.57%
已结贴  问题点数:20 回复次数:9 
如何使用缓冲让多用户操作更流畅,在什么情况下使用呢???
我有一个A.DBF表,多人都要操作这个表(已按录入员set filter 筛选,只能修改、删除自己录入的数据),是在同一个表单下通过“添加”、“修改”、“删除”调用不同的表单界面进行操作,使用了数据环境,数据环境还有其他表辅助下拉菜单,以及根据需要添加数据的表,对此我有关于缓冲的问题不解。如下:
1、“添加功能”有同时对A.DBF添加的(insert into)带有grid视窗,添加后grid视窗更新,那么添加需要缓冲么,辅助下拉菜单的表需要设置缓冲模式吗,怎样做呢?
2、“修改功能”有同时对A.DBF在grid下编辑的更改多条记录的,这时A.DBF用的行缓冲好,还表缓冲好,缓冲修改更新后,退出thisform.release被调用的grid编辑表单,再转入“添加”状态,缓冲模式用命令调整吗,怎样调整?
3、“删除功能”有同时对A.DBF在grid下通过用删除标记的方式删除的,这时A.DBF用的行缓冲好,还表缓冲好,修改与删除操作会影响其他人的“添加”“修改”“删除”的速度么,如何调整呢?
我的程序,现在如果一个人在使用,速度非常快,如果多人同时使用慢的像蜗牛似的。辛苦各位老师耐心细致指教,初学缓冲,学生迷惑!!!
搜索更多相关主题的帖子: 删除 缓冲 添加 修改 操作 
2022-06-07 11:01
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:5 
个人的做法,供参考
1. 并不让一个表由多用户同时打开,而是通过select制作复本,供终端用户本地使用
2. 增删改时需要先行判断后台数据是否变化(并不一定所有场景都这样,看数据特点及应用要求),或者变化之前检查后台数据与本地数据是否同步
3. 需要检查后台数据是否变化,有变化的时候需要刷新本地数据

略显麻烦,但共享打开表还会有其他的麻烦,看开发者的取舍吧,我主要是考虑:(1)对数据可能的破坏程度(2)后期维护成本大小
2022-06-07 14:13
wabc327
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2021-2-4
得分:0 
回复 2楼 laowan001
能详细举例说明一下么,select做副本怎样增删改呢?你说的2、3又是怎么实现的呢?

[此贴子已经被作者于2022-6-7 16:22编辑过]

2022-06-07 16:21
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:12
帖 子:233
专家分:577
注 册:2014-3-18
得分:5 
方法问题,可以参考2楼版主做法或直接升级到sql数据库
2022-06-07 18:16
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:12
帖 子:233
专家分:577
注 册:2014-3-18
得分:0 
也可以分为多个表,每个用户一个,可录入修改,统计汇总查询时遍历所有表
2022-06-07 18:19
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
以下是引用wabc327在2022-6-7 16:21:14的发言:

能详细举例说明一下么,select做副本怎样增删改呢?你说的2、3又是怎么实现的呢?


1. select * from 后台表 where 条件 into cursor 本地表 readwrite    && 制作副本,此时本地表与后台表一致,每个用户看到的都是本地表
2. 增删改时,如果需要判断后台表是否变化,先根据条件比较本地表和后台表是否一致,如果一致则继续,否则可能取消操作
    use 后台表 EXCLUSIVE
    insert into 后台表 ...    && 增加
    update 后台表 set ...      && 修改
    delete from 后台表 where 条件    && 删除
    use in 后台表
3. 其实就是1的操作,可以定时刷新,也可以设置刷新按钮,由用户点击刷新

当然,更新后台表时,也要同时更新本地表。也可以每次更新后就自动刷新(步骤1)

[此贴子已经被作者于2022-6-7 19:39编辑过]

2022-06-07 19:38
aqyejun
Rank: 3Rank: 3
等 级:论坛游民
威 望:9
帖 子:121
专家分:99
注 册:2010-6-11
得分:5 
是否还有其他方法?

【独叶为舟】工作室
2022-06-08 09:00
aqyejun
Rank: 3Rank: 3
等 级:论坛游民
威 望:9
帖 子:121
专家分:99
注 册:2010-6-11
得分:0 
以下是引用my2318在2022-6-7 18:19:26的发言:

也可以分为多个表,每个用户一个,可录入修改,统计汇总查询时遍历所有表

以上提到“先根据条件比较本地表和后台表是否一致”的做法是否表述一下?是否用过程文件,并能随时调用?

【独叶为舟】工作室
2022-06-08 10:17
talkrobin
Rank: 2
等 级:论坛游民
帖 子:38
专家分:19
注 册:2022-5-15
得分:5 
又学习到新思路了.
2022-06-08 13:42
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:12
帖 子:233
专家分:577
注 册:2014-3-18
得分:0 
以下是引用aqyejun在2022-6-8 10:17:31的发言:


以上提到“先根据条件比较本地表和后台表是否一致”的做法是否表述一下?是否用过程文件,并能随时调用?

不是存为本地表,而是把原来的远程总表按用户分成若干个远程分表,用户增删改直接操作分表,只是查询汇总时要遍历所有分表。
2022-06-08 17:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509276-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094492 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved