VFP下客户机访问任意映射服务器的方法
在开发网络多用户应用系统时,VFP程序员经常采用以下方法:把一个或多个数据库(。DBC和。DBF)作为共享资源放在NOVELL、WIN-NT的一台或多台服务器上(或设置在WIN9X对等网络上),并将应用程序和临时文件放在本地客户机的WIN9X环境下。在客户端开发时,将这些服务器的本地访问符映射到指定的F:。最后,它被编译成一个。EXE文件来生成安装系统并将其安装在每个客户端上。
-在实际应用中,由于局域网中每个客户端的盘符数量,指定的一个或多个服务映射的盘符在开发机上可能不是F:(H:)。这时,麻烦来了。程序一启动,屏幕就提示“'定位数据库'-'初始化临时表对象时出错。找不到F: …???。DBC .如果整个应用软件有。DBC图书馆的表,各种自由表和许多表格,用户根本不可能找到数据库或自由表。
——作者就是这样解决这个问题的(大致方法如下):
-1.创建一个包含文件:比如info.h
# include DBC name 1 _ loc dr v1 _ loc+' \ citic mis 1 . DBC '
;服务器1上的库1
# include DBC name 2 _ loc drv 2 _ loc+' \ citic mis 2 . DBC ';
服务器2上的库2
# include DBCusrinf _ loc dr v1 _ loc+' \ citic mis 1!' usrinf.dbf '
;图书馆中的1张桌子
# include DBC EMP _ loc drv 2 _ loc+' \ citic mis 2!EMP . DBF ';
图书馆2中的表格
# include dbcjgbh _ loc dr v1 _ loc+' \ RSC \ jgbh . DBF ';
图书馆或免费桌子
-2.在应用程序系统的目录中创建一个文本文件,例如。\bmp\serdrv.txt,里面有两行文字。
f:\ ACC;客户端到第一个服务器的映射字母
h:\ ACC;客户端到第二服务器的映射字母
-3.在软件的主程序中建立全局变量drv1_loc,drv2_loc。刚开始的时候用低级的文件操作命令fopen,fget等。要读取serdev.txt中的两行f:\acc,h:\acc,分别赋给drv1_loc,drv2_loc。
-4.应用软件中的表单或其他程序都包含info.h文件。
-4.1对于免费桌子:
-可以在表单的LOAD事件中使用0alia jgbhshar中的use (dbcjgbh _ loc)打开表,在UNLOAD事件中使用jgbh中的use关闭表。
-4.2对于数据库的表格:
-可以在表单设计时打开数据环境中的表(比如usrinf.dbf,emp.dbf),在这个数据环境中的Dataenvironmnet.cursor?的。database属性自动设置为其所在服务器的数据库,如本例中的f: \ ACC \ citicmis1.dbc,h: \ ACC \ citicmis2.dbc。
-此时,您可以在Dataenvironmnet对象的BeforeOpenTables方法中编写以下代码:
-这个。Cursor1.database=DBCNAME1_LOC
-this . cursor 2 . database = dbcname 2 _ loc可以解决问题。
-那个。通过上述方法生成的EXE系统,被安装在各个客户端上后,只要。\bmp\serdrv.txt修改为实际指向服务器盘符!用这种方法开发的系统已经在作者系统的各个单元运行在WIN9X vs WIN9X,WIN9X vs NOVELL server,VFP6.0的环境下!
位律师回复
0条评论