以下是发在梅子论坛的贴子,转发过来,希望给用得着的狐友参考。
我的程序以前一直是用花生壳绑定IP实现的远程,由于客户服务器和客户端都是通过宽带上网,一般的操作(开进货单、销售单等)速度也还不错,但是在远程客户端修改商品资料(10000多条记录)、查询一段时期的进销存流水(一周5000条以上)等涉及到取记录量大的操作时非常慢。
前段时间参考ZXS4785版主及其它狐友的代码后,对服务器环境及程序进行vfp/(asp/vfpdll/Sql)模式改造。由于加入myfll.fll进行数据压缩,远程操作速度较以前大为改善。趁这两天有时间,特将实现方法及相关代码介绍如下,为初接触者提供参考,老手自可一笑而过咯,呵呵。在此,谢过ZXS4785与木瓜先!
一.服务器设置
1.花生壳:绑定IP之用,如果服务有固定IP除外。
2.IIS:我用的是5.1,Win系统是XP SP2。安装后IIS后,建议设置TCP端口为80之外的其它端口譬如8080,因为有些地区的电信封80端口(这就是本机能访问网页,而远程不能访问的一大原因)。
3.设定默认网站的主目录,后面提到的sqlexec.asp及twcom.dll都要放在主目录中,以提供给客户端调用。
4.将myfll.fll复制到WINDOWS系统文件夹,这一点非常重要,否则执行asp将提示找不到API库错误。mfll.fll在这里的作用是调用cursortostr函数将查询得到的视图压缩成二进制字符串,这个也是必须的,大量记录不经压缩而传输到客户端,会等晕死的。
二.程序
1.SQLExec.asp:一个asp文件,它的作用是接收客户端的SQL指令,再传输到twcom.dll执行,得到结果后可由其response对象读取。以下是代码,可以在VFP环境用modi Comm SQLExec.asp的命令或用记事本编写。
<%
'取客户端IE表单上cSqlstring变量的值,即sql语句'
p1=Request.QueryString("cSqlstring")
'以下两句是将p1中的%、+转换为半角'
strsql =Replace(p1,"%","%")
strsql =Replace(strsql,"+","+")
'将sql语句传输到twcom中执行,并得到压缩后的二进制字符'
Set oVFP=Server.Createobject("twcom.w_select")
response.BinaryWrite(oVFP.W_exec(strsql))
Set oVFP=nothing
%>
2.twcom.Dll:用VFP9编写(7、8应该也可以),建一project,主文件twcom.prg,代码很简单,连编成dll即可。twcom.prg代码如下
*****************************************
Define Class W_SELECT As Session OlePublic &&
vfp/(asp/vfpdll/Sql)
最新推荐文章于 2022-06-14 00:01:02 发布
本文介绍了如何通过VFP/(ASP/VFPDLL/Sql)模式改造远程数据库操作,利用ASP文件SQLExec.asp和VFP编写的dll,结合myfll.fll库进行数据压缩,提高远程操作速度。详细讲述了服务器设置、程序代码实现、客户端执行SQL语句的过程,并给出使用示例,强调在大量数据操作时的速度优势。

最低0.47元/天 解锁文章
2302

被折叠的 条评论
为什么被折叠?



