foxpro 用离线视图工作
来源: 作者: 出处:综艺读书 2006-10-10你可以用 USE 命令打开离线视图就象打开一个联线视图一样。然而, 就象我在前面的说明一样, VFP 事实上打开离线视图的持久表而不是执行一条一般的 SQL SELECT 命令。
|
|
|||
使用离线视图工作时有一些要注意的事:
- 改变模式到离线视图,添加, 修改或删除操作都是对视图表而没有写回到视图所基于的源表。这意味着其它人打开源表时,看不到数据在离线视图中的改变。
- 在另一方面: 你也不能从源表中刷新离线视图的内容。
- 视图表的行动象一个普通表的缓存。getfldstate() 和getnextmodified() 反映了视图的缓存状态。tableupdate() 将视图缓冲中的修改写回到视图表中, tablerevert() 则取消修改。没有这些函数将不能对源表进行任何处理。
- 你不能修改视图表的结构,也不能使用对它使用create trigger, insert, pack, 或 zap 命令 (但可以使用delete all)。
- 与联线视图一样, 离线视图自动使用行缓存和表缓存, 因此你应该将multilocks 设置为 on。如果你试图关闭缓存将会得到一条错误信息。
- 与联线视图不同的是, 打开一个离线视图不会自动打开视图所基于的源表 ,这是由于离线视图是与源表"脱离的"。这意味着当你把离线视图交给别人时,不需要提供源表的拷贝 (它可能会非常大或是一个非VFP 数据表)。同时也意味着你可以在源表上进行某些类型的(诸如重建索引之类)维护, 甚至在多个用户打开离线视图时。稍后我们将看到这种例子。
- 在离线视图上输入数据时,源表的规则和触发器不会激活, 仅当你将数据更新到源表时, 源表的规则和触发器才会激活。这就是说除非你为使用 dbsetprop()为离线视图定义了规则, 有可能有不正确的数据进入离线视图并不能在较早的时候被发现。
- 如果你使用"修补关键字", 你需要为添加到视图中的记录指定关键字值。最常用的指定关键字段值的方法是调用一个NEXTID 程序来为该表的取得下一个可用的基本关键字段值。如果你使用的是这种方案, 你需要使用dbsetprop() 来设置离线视图中的字段的DefaultValue 属性,这样添加记录到离线视图中时可取得指定的关键字段值。
- 使用候选关键字段的一个不利因素是: 如果离线视图用于允许远程数据输入 (如在笔记本电脑中), 你需要为每一个笔记本电脑指定一个关键字段值块,这样主关键字段的值才不会重复。作为一种选择, 你可以将用户名或笔记本电脑名组合进关键字段值中, 这样就不用担心会出现相同的主关键字段值了。
- 如果一个离线视图是用于一个远程计算机上进行数据输入, 你需要传送离线视图表(包括FPT), 持久表缓存文件和数据库容器(DBC, DCX, 和DCT) 到那个远程计算机中。
如果你需要确定自视图离线后那些记录被修改了, 使用use 命令的admin 子句。这需要以独占方式访问视图表否则你会得到一条错误信息。下面是使用该命令的例子:
use LV_CUSTOMER admin exclusive
当用admin 模式打开视图时,它自动使用表缓存而不是行缓存。
试图改变表的缓存模式会造成错误。
一但视图以admin 模式打开, 你可以使用getnextmodified() 和 getfldstate() 来确定哪些记录和这些记录中的哪些字段被修改了。
有趣的是, 在admin模式下打开一个离线视图时并没有自动打开它的源表, 因此 VFP 必须使用 TBF 文件来检查哪些记录被修改了。
当视图在管理模式下打开时,你不能更新源表; 更详细的信息参见下一章中的更新源表。可是, 你可以使用tablerevert() 来撤消对离线视图的修改.
进入讨论组讨论。相关图文阅读
频道图文推荐
相关专题
最新技术文档
·用FoxWeb在网上快速发布你的FOXPRO数据库 11-03
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
站内各频道最新更新文档
站内最新制作专题
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
热门关键字导读
站内频道文章精选
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |
百度推荐,商机无限
搜索您感兴趣的内容




