新的集成开发环境数据浏览器(DataExplorer)数据浏览器(DataExplorer)众所周知,VisualFoxPro有很强的数据操控功能。VisualFoxPro9将这种功能在客户端/服务器模式(C/S模式)的开发环境下表现得淋漓致尽。它新增了一个名为数据浏览器的工具让基于C/S模式的开发变得更方便。数据浏览器是一个新工具,你可以在任务面板管理器中找到它,要激活数据浏览器,你先要从VisualFoxPro的“tools”菜单中打开任务面板管理器,然后单击任务面板管理器中的“>>”按钮,这样会弹出一些未显示的面板列表(参见图5),然后单击“DataExplorer”项。图5.通过单击“>>”按钮可以弹出更多的面板列表现在你就可以通过它连接到外部数据库,并在你的计算机上浏览远程数据库了。图6展示了用数据浏览器来分析一个名为“Master”数据库的详细信息。你可以在图6中相应的数据表上单击右键,并单击弹出的快捷菜单中的“RunQuery”项来查询这个表中的记录。这时会打开一个新的对话框(参见图7),你可以在这个对话框中输入SQL语句来执行查询。图6.用数据浏览器来显示Master数据库的详细信息图7.查询对话框可以用来输入SQL语句,并显示查询结果数据浏览器在以前的VisualFoxPro版本中就非常需要,感谢Microsoft公司终于在版本9中加入了这项功能。方便的代码查错VisualFoxPro9对它的程序编辑窗口也做了很大的增强。当FoxPro在代码中发现一处语法错误时,它会为相应代码画上下划线。这节约了开发者的纠正BUG的时间,并且不必非要等到编译完成才发现错误。VFP9的IDE=更高的效率尽管本文描述的新增功能不是太多,但VisualFoxPro9的集成开发环境确实进步了不少。改进后的程序编辑窗口让你的源代码中的BUG更少,方便的字体设置能让你的项目更一目了然,并且新增加的数据浏览器让C/S开发变得更简单。VisualFoxPro9中新的数据处理方式(2)更好的关联支持新版本中的UPDATE语句和DELETE语句支持关联。这样,一条语句可以引用不同的表,如下所示:DELETEproducts;FROMmfg;WHEREmfg.productID=products.productID;ANDmfg.discontinued=.t.这个DELETE语句删除mfg表中所有不再生产的产品。另一个关联UPDATE语句示例如下:UPDATEproducts;SETunitprice=mfg.msrp*.90;FROMmfg;WHEREmfg.productID=products.productID这条UPDATE语句将零售产品的价格打了九折。可能你会问:它支持子查询吗?当然支持。但使用的时候要格外小心。因为如果子查询没有返回任何记录,那将会返回一个值为NULL的空记录。而这恰恰不是你所希望得到的结果。如下所示:UPDATEproducts;SETunitprice=;(SELECT(msrp*.90);FROMmfg;WHEREmfg.productID=products.productID)这条UPDATE语句的作用与上条基本相似,但如果子查询中的产品没有找到的话,那unitprice将被置为NULL。视图与查询设计器尽管新版本增强了子查询功能,但不幸的是在视图与查询设计器中并不支持这种增强功能。并且由于SQL中的IN子句中的元素数目取消了硬编码的限制,但视图与查询设计器中并不知道,因此如果你使用设计器,那IN子句还是只支持24个元素。增强的UNION操作符由于联结的数量没有了硬编码的限制,你可以在INSERTINTO子句的结果集中使用UNION。也可以在使用UNION的同时使用ORDERBY子句。性能不管你是访问远程数据还是依赖于它强大的本地数据库引擎,VisualFoxPro始终将性能考虑在第一位。VisualFoxPro9进一步地增强了数据引擎的功能。二进制索引这种新型的索引使用方法如下:INDEXONDELETED()TAGDELETEDBINARY这种索引能与任何非空的逻辑表达式一起使用。除此之外,FOR表达式、ASCENDING、DESCENDING、UNIQUE或CANDIDATE关键字不能与它一起使用。二进制索引并不支持SETORDERTO命令,而且INDEXON命令会将当前的order设为0。但你可在Seek语句中使用二进制索引。二进制索引最大的优势在于它的索引文件大小。以一个包含800万条记录的表为例,它的二进制索引文件的大小差不多为表大小的三十分之一。尺寸越小意味着在执行APPEND和REPLACE操作时I/O处理速度越快,但遗憾的是所有的Rushmore优化技术目前都还不支持二进制索引。如果SQL语句返回的记录起过表中总记录的三分之一的话,那Rushmore...