vfp/(asp/vfpdll/Sql)

本文介绍了如何通过VFP/(ASP/VFPDLL/Sql)模式改造远程数据库操作,利用ASP文件SQLExec.asp和VFP编写的dll,结合myfll.fll库进行数据压缩,提高远程操作速度。详细讲述了服务器设置、程序代码实现、客户端执行SQL语句的过程,并给出使用示例,强调在大量数据操作时的速度优势。

以下是发在梅子论坛的贴子,转发过来,希望给用得着的狐友参考。

我的程序以前一直是用花生壳绑定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 &&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值