| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2604 人关注过本帖
标题:[求助]在记录前/后插入记录
取消只看楼主 加入收藏
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
那在表单的LOAD事件里面就不用定义数据环境,直接在每个PAGE的ACTIVATE里面写单独的数据环境就行了
USE h:\vfp\data\tables\xsk AGAIN ORDER xh IN 0 ALIAS xsk1

那Deactivate里面关闭数据环境的代码用什么?
CLOSE TABLES ALL
会不会把所有表都关了?
2011-07-27 10:47
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
在定义数据环境的时候是不是最好用use tablename shared,那样就可以在不同表单中打开同一表,不然就会提示错误“文件正在使用”。
2011-07-27 10:55
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
1.你的意思我清楚,关键是我想用每个PAGE来代表每个模块,我这里一个PAGE就相当于是一个表单,这样界面会更加友好,操作更加方便。我连菜单都没有用,就是为了更加方便的在各个模块中切换。表单可以用程序来启动,而且有LOAD和UNLOAD事件,可是PAGE没有,所以没法像表单那样用程序启动,可不可以自定义方法给PAGE加一个LOAD事件来设置数据环境?
2.还有你说的表单自己打开的数据库自己关闭,我想知道的是如何关闭,好像没有单独的命令关闭数据库中的某一个表。
3.use again的问题我试过了,好像不行。我是在一个表单的一个控件CLICK事件里面用执行PRG程序,而这个程序就是直接启动一个新的表单,原表单不关闭,只是把Enabled设为.F.,这时要为新表单设置数据环境,为了保证不影响原表单的数据环境,所以我用了DataSession,这应该没问题吧。然后在新表单的LOAD事件里面设置数据环境的时候我用了USE打开表,这时提示文件正在使用,我在USE后面用AGAIN参数也不行,提示同样的错误,后来我把原表单LOAD事件里面的USE后面加了SHARED就不报错了。还有你前面不是也说一切以共享模式考虑吗?
2011-07-27 12:23
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
可能我还是没表达清楚,现在是单独的两个问题:
  1.你说的为每个page设置独有的数据环境,这是可以,不过我现在情况比较特殊,我表单里面每个page用到的数据表有一样的也有不一样的,而5个page几乎没有共用的数据表,也就是说,Form的Load事件一个表都不用打开,全部在page各自的Activate事件中单独打开。现在问题来了,Form的Load事件之后要执行Form里面每个page里面每个子控件的init事件,如果我所有控件全是用代码启动的话那当然没问题,可是我在学会这个之前都是用表单控件集拖的,而这些控件数据源绑定的就是数据库中的表,这样执行init事件的时候就会出现找不到某些数据表,因为还没有开始执行Activate事件。要解决这个问题,要么将所有控件都用程序启动,要么直接在表单的Load事件中打开所有要用到的表,我选择了后者。
  2.整个系统里面我计划就用两个表单,一个Login一个Main,Login比较简单不说了,Main这个表单作为系统主界面,里面是一个有5个page的pageframe,每个page代表一个模块,界面你之前看过了。现在需要在一些时候用控件Click显示一个新的表单,原表单不关闭。新表单我是用程序启动的,而用程序启动的新表单,其数据环境都是空白的(这个我试过,不设置数据环境的话GRID就是空的),需要重新设置,而设置的时候需要再从已经打开的数据库中读取数据表数据,而这时原表单没关闭,所以会报错“文件正在使用”,我是这么理解的。解决的方法我是在设置Main的数据环境时use xsk shared order xh in 0,然后将新表单的DataSession设为2,这样就不会报错了。就是不知道shared打开数据表会不会有什么弊端。
2011-07-27 19:06
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
那应该问题不大,我这个是小数据库,同时访问的机会不多。呵呵。
  
2011-07-27 20:06
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
是有点,刚开始做的时候就是这样设想的,主要是为了更加方便使用者操作,没想过后面要实现需要多花好多功夫。
我还想让这个系统能在局域网访问,不过我目前对于这些一无所知,能不能介绍点资料看看。
2011-07-27 20:48
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
哦,那我就不多想了,专门弄单机版的了。我也是从来没看到专门介绍如何做局域网的。
2011-07-27 21:05
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
3Q,你现在也是专家啊!
2011-07-27 21:23
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
回复 57楼 qingfameng
1.自由表作为数据环境的话没有触发器来限制,那用户在进行操作的时候可能会破坏表的完整性,这个问题请问你是怎么解决的,谢谢!(系统做出来是给别人用的,不是自己用。)
2.我现在的水平还不会做远程,所以对这个没资格交流,学习ing!
3.对于删除顺便请教下,如果表已经是shared打开了,要实现pack删除,怎么操作?
2011-07-27 22:30
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
收藏
得分:0 
回复 59楼 qingfameng
先谢谢指教。
1.自由表的确可以自由完成这些操作,不过如果操作时没有触发器的限制,那用户操作完的数据可能不符合源表数据的要求,即使没有改变表结构,这时如果用自由表去更新源表就会出错,而用户可能不知道哪儿错了。例如:用一个学生表的副本(自由表)来进行操作,用户添加了一个学生的信息,不过把学号填成了和表中已有记录一样,而学号刚好是唯一的主关键字,操作的时候不会报错,而在更新的时候就会报错,是不是这个道理。
23没问题,谢谢分享。
2011-07-28 09:43
快速回复:[求助]在记录前/后插入记录
数据加载中...
 
   



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

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