数据库关闭的学问
自己学了VFP 快半年了 ,刚开始时候是不想学啊,因为很多人都认为VFP没有其前途了,其实老师的说应该是没有“钱图”了吧。后来学校里面开了这门课,而且有因为某中原因所以也就对VFP产生了兴趣啊。自己玩了一段时间 把自己的一点体会告诉大家。这里就是要讲到的就是数据库方面的。
我们都知道在设计时,如果某个项目被打开,那么我们用 close databases 命令关闭该项目的数据库时,并不能真正的关闭数据库,只是关闭了数据库中的所有表、视图和临时表。比如下面的语句将导致一个“文件正在使用的错误”:
set database to data1
close databases
use (sys(5)+sys(2003)+data1)
因此在设计时必须先关闭项目,才能真正关闭数据库。所以我们在运行时必须将这样的程序与主程序分开,单独建立一个app,在独立的环境中使用。这样才能达到要求。
上面的语句也许有的朋友会产生疑问,data1不是一个数据库吗?它应该用 open database mydata 这样的语句来打开啊?没错,但是,Vfp是一种非常灵活的语言,它甚至可以把数据库和表单当作一个表打开。
这样做有什么用呢?用处很多,比如我们用编程方式对表结构/索引作了修改,最后需要清理数据库才能使用修改后的结果,就可以用打开表的方式来打开数据库,然后执行Pack。用这样的方法,可以用编程方式取得数据库中有哪些表、参照完整性、表间的连接关系的详细信息。
同样,可以用打开表的方式打开表单。不过使用这种方法需要注意的是,必须使用完整的路径和文件名,比如
将会产生一个“找不到别名mydata”的错误,只有输入了完整的路径信息后:
use data1
use c:\我的项目\data\mydata.dbc
才能正确的用打开表的方式打开数据库
东西用多了也就感觉到一些东西的用法技巧了,希望大家可以有所收益。