回 帖 发 新 帖 刷新版面

主题:[请教] VFP能否时时在远程网上传递数据?

近日在广州的一个展会上展销本人用VFP开发的《北京惬意商务软件》,就是进销存和餐饮都能应用的软件。
在展会上,有很多大一些的商家询问:“我在各地有多家分店或经销商,我能不能随时掌握各地的经营情况?”在我们软件里要得到这样的效果应该是叫时时传送吧?如何才能实现?
在展会上,本论坛的SIMON老师光临了我的展位,我们共同讨论了这个问题。SIMON老师提出要在总经销商那里设有固定IP地址,所有数据都时时传送到总经销商那里,总经销商才能方便的随时查看,不应该是总经销商去各地的分销商机子上去查看,我觉得很有道理。
我俩只是讨论,并非结论,同时也还要进一步细化。欢迎各位高师继续献计献策,在下首先拜谢了!

回复列表 (共48个回复)

31 楼

第二个问题:
如何由VFP程序自动映射盘符(网络驱动器)?

****映射H:盘*************************      
    DECLARE integer WNetAddConnection IN win32api string,string,string
    nOK = WNetAddConnection(M_path,M_LogPass,"H:") 
  IF nOK <> 0 
        MESSAGEBOX(' 因H:盘符本地占用或网络连接故障!',16,"  请网络管理员处理!")
        CLOS ALL
        QUIT    
    ENDIF

***断开H:盘
   =WNetCancelConnection("H:",0)

进一步您可以VFP程序禁掉本机映射的路径和盘符记录,也就是您手动映射保存的“驱动器”和“文件夹”的

内容,这样就没有任何映射过的痕迹了。。。

再绝一点,当您*映射H:盘只要没断开,在管理器是可以看到H:盘的,VFP程序一样可以屏蔽掉他。

这样,除了您之外,任何人从表面上是看不出您的VFP联到那里了的。。。。可能是局域网里的某台机

也可能是互联网上任意的一台或几台机了。。。。。 

32 楼

多谢foxdb老弟的关注,我正在逐条逐句的研究你的讲解,有搞不懂的地方还要向老弟请教,还望老弟不吝赐教啊。
预祝虎年老弟多赚钱,全家幸福安康!

33 楼

[quote]下面几种方法我试的结果是

1、 VFP客户端 + SQL Server  "用DDNS 开端口 结论:不安全 "

2、 VFP客户端 +  VPN虚拟网络 + SQL Server 或 DBF表 结论:速度太慢而且不稳定

3、 VFP客户端 + asp + VFP的COM + SQL Server 或 DBF表 结论:可行速度能满足要求

4、 VFP客户端 + asp.net + SQL server 或DBF表 或MDB数据库 这个没试过

我的方法是 VFP客户端 + asp+DBF 或SQL server 不用VFP的COM 在server端用asp直接访问DBF 或SQL server 再将结果返回VFP客户端如果您的数据敏感(如储值卡数据)就用SSL(请参看我在本坛的有关回贴)

[/quote]
---------------------------

“VFP客户端 + asp+DBF 或SQL server 不用VFP的COM ”这种方式做通用数据处理中间层的确是可以的,我也试过,但就是因为纯asp无法压缩传输数据,数据传输性能上根本无法提高,所以我才选择第4种 即 “VFP客户端 + asp.net + SQL server 或DBF表 或MDB数据库 ”这种方式的。

ASP.NET2.0中有支持数据压缩的类,不需要第三方的组件就可实现压缩传输数据,所以用它来做通用数据处理中间层是最理想的。

34 楼

谢谢种子老哥给我和 zxs4785 赵贤弟 探讨的机会。

关于“VFP客户端 +asp+DBF”的压缩传输问题?

首先 用VFP的COM 或在server端执行压缩、统计等功能会增加server的运行负荷,当用户数达到一定的时候就会反应迟钝。
  这主要是对ASP的设计和传输的数据结构没有深入的考虑。

我的做法是:
  1、远程的server只是当作纯数据存储用。(只负责压缩后的数据存取,即数据数据访问层)
  2、压缩、统计等所有功能放在VFP客户端。
  3、server端的ASP采用ajax技术实现局部数据更新。(传输的数据量大降)
  4、建立本地临时缓存数据库。(注意:ASP+ajax只在VFP客户端后台工作负责处理传输的数据)
  5、表示层(界面层)和业务逻辑层都由VFP客户端完成!
  6、最大的好处是可以租用“虚拟主机”了,不用为上传组件或控件而烦恼!(一般情况下服务商都不给上传的“特恼火”)
最后;建议 zxs4785 赵贤弟在 ASP.NET2.0中也研究一下ajax 你会收到意想不到的效果的!!!

35 楼

二位老弟讨论的如此积极,如此高深,本想多加些分以表感谢。
可每人最多只能评50分,系统再不给加了,十分抱歉!

36 楼

看得出来,foxdb是VFP网络应用的高手,很高兴与你一起探讨技术问题。如愿意,请加我,QQ:594570286 ,请注明:VFP爱好者 或 你的网名 。

你说的 ajax 是否就是 VFP客户端使用 xmlhttp组件与远程的asp进行通信? 我也是这样的用的,不同的是 ajax是异步通信的,而我用 xmlhttp是同步通信的。


我想知道,既然VFP客户端有压缩的功能,不用VFP COM的server端是如何解压缩的?

------------------------------------
我的做法是:
  1、远程的server只是当作纯数据存储用。(只负责压缩后的数据存取,即数据数据访问层)
  2、压缩、统计等所有功能放在VFP客户端。
  3、server端的ASP采用ajax技术实现局部数据更新。(传输的数据量大降)
  4、建立本地临时缓存数据库。(注意:ASP+ajax只在VFP客户端后台工作负责处理传输的数据)
  5、表示层(界面层)和业务逻辑层都由VFP客户端完成!
  6、最大的好处是可以租用“虚拟主机”了,不用为上传组件或控件而烦恼!(一般情况下服务商都不给上传的“特恼火”)
最后;建议 zxs4785 赵贤弟在 ASP.NET2.0中也研究一下ajax 你会收到意想不到的效果的!!!

37 楼

zxs4785、foxdb二位远程大师请回帖,有事相求。

38 楼

[quote]
如何由VFP程序自动映射盘符(网络驱动器)?
****映射H:盘*************************      
DECLARE integer WNetAddConnection IN win32api string,string,string
nOK = WNetAddConnection(M_path,M_LogPass,"H:") 

IF nOK <> 0 
  MESSAGEBOX(' 因H:盘符本地占用或网络连接故障!',16,"  请网络管理员处理!")
  CLOS ALL
  QUIT    
ENDIF

***断开H:盘
=WNetCancelConnection("H:",0)
[/quote]

------------------------------------------------------------------------------
请教31楼foxdb老师:
    昨天本人开始研究上面自动映设语句,觉得语句里应该有被映设机子的名称。否则同一局域网内多台机子时,怎么能知道是映设的哪一台呢?谢谢!

39 楼

自动映射盘符,还望有高人指点。

40 楼

[quote]
如何由VFP程序自动映射盘符(网络驱动器)?
****映射H:盘*************************      
DECLARE integer WNetAddConnection IN win32api string,string,string
nOK = WNetAddConnection(M_path,M_LogPass,"H:") 

IF nOK <> 0 
  MESSAGEBOX(' 因H:盘符本地占用或网络连接故障!',16,"  请网络管理员处理!")
  CLOS ALL
  QUIT    
ENDIF

***断开H:盘
=WNetCancelConnection("H:",0)
[/quote]

------------------------------------------------------------------------------
请教31楼foxdb老师:
    昨天本人开始研究上面自动映设语句,觉得语句里应该有被映设机子的名称。否则同一局域网内多台机子时,怎么能知道是映设的哪一台呢?谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册