日期:2013-10-18  浏览次数:20619 次


       数据库关闭的学问

   本人学了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

才能正确的用打开表的方式打开数据库

东西用多了也就感觉到一些东西的用法技巧了,希望大家可以有所收益。