以下是发在梅子论坛的贴子,转发过来,希望给用得着的狐友参考。
我的程序以前一直是用花生壳绑定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 &&
相关推荐
CursorAdapter 起步 之 三:可重用数据类
CursorAdapter 起步 之 三:可重用数据类<br /><br />作者:Doug Hennig<br />译者:fbilo<br /><br />VFP 的程序员们想要一个可重用的数据类已经很久了。尽管在过去的版本中也有许多解决这个问题的办法,不过总是有点美中不足。现在在 VFP 8里,我们有了真正的可重用数据类。这个月,Doug 为我们演示了怎样通过建立 CursorAdapter 和 DataEnvironment 的子类来建立可重用的数据类、以及怎样在表单和报表中使用它们。<br /><b
逆向某团mtgsig参数时,我踩过的3个坑:从H5guard混淆到Python校验
本文详细解析了逆向某团mtgsig参数时遇到的三大挑战:H5guard混淆破解、环境补全检测与Python结果校验。通过实战案例,揭示了JavaScript加密算法的逆向技巧,包括控制流混淆拆解、隐蔽环境检测点规避以及跨语言校验的解决方案,为开发者提供了一套完整的逆向工程避坑指南。
RedHat 9 替换yum源镜像
引言:我们个人通常使用的红帽系统yum源是需要注册付费的,所以在使用yum源安装一些软件时无法正常安装(例如:MySQL),这时我们就需要将yum源替换为CentOS对应的源,以实现在红帽系统中正常安装软件。
自旋玻璃(spin glass)、自旋冰(spin ice)和量子自旋液体(quantum spin liquid)(之二)
具有相同电荷的电子相互排斥。结果,为了在极其拥挤的环境中相互超越,他们不得不改变自己的行为。剑桥大学和英国伯明翰大学于 2009 年 7 月发表的研究表明,电子可以通过量子隧穿从金属表面跳到相近位置的量子线上,这样做后,将分离成两个准粒子,命名为的自旋子和全子。Van den Brink、Khomskii 和 Sawatzky 在 1997-1998 年对轨道子进行了理论上的预测。在 2011 年 9 月发给出版商的论文中报告了它作为一个单独的准粒子的实验观察结果。
C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口)
C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口) 之前写了一篇关于C++调用海康相机SDK采集图像的文章,有很多人私下发送消息咨询了一些问题,由于工作繁忙,只答复了一部分问题,今天抽出时间从头梳理了一下大家提出的问题,把我能够回答的问题都解答一次。上一次的程序只是简单的实现了图像的采集,没有使用到线程,今天把程序重新做出调整,把线程和多态加进去。文章最后有项目的下载地址。 我使用的是QT Creator这个IDE,版本信息如下: 我把相机采集的图像转换为openC
Cocos Creator+微信小游戏:如何用wxDownloader实现资源动态加载与热更新
本文深入探讨了在Cocos Creator开发微信小游戏时,如何利用wxDownloader有效应对主包体积限制,实现资源的动态加载与热更新。文章详细介绍了从项目配置、资源标记到初始化加载的完整流程,并重点解析了基于MD5 Cache的缓存策略与版本控制方案,旨在帮助开发者构建稳健高效的资源管理体系,优化游戏启动速度与更新体验。
华为od 面试八股文_Python_02_含答案
华为od 面试八股文_Python_02_含答案
Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)
在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限
Python爬虫技术:使用Playwright和Twitter API v2高效获取Twitter/X数据完全教程
遵守规则:始终遵循Twitter的使用条款和速率限制错误处理:实现完善的错误处理和重试机制数据质量:进行数据清洗和验证性能优化:使用异步处理和合理的延迟设置可维护性:模块化代码,便于维护和扩展。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
2290



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



