【原创】增加两行代码将你的VB6+Access单机程序升级为网络版(附:VB6在Internet环境下访问远程数据库最高效的方法)
本文解决vb6+access网络访问,以及vb6+mssql在internet环境下连接十分低效的问题。
首先来看看基于ado+access的单机版应用代码: (源码下载地址: http://www.tebny.com/2code/adodemo.rar)
这是一个很典型的ado+access的应用,其中包含了增、删、改、查的各种操作.由于代码比较简单,这里就不赘述了。
我们的任务是如何将这个典型的单机应用,只增加两行代码使其扩展为网络版。
第一步:下载并注册NetData控件: http://www.tebny.com/2code/netdatademo.rar
第二步:建立服务器端程序:
2.1 新建一个vb工程,并保存,加入刚刚注册好的NetData控件,然后将NetDataServer控件放到form1上。
2.2 在Form_Load事件中加入:
NetDataServer1.Start "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;", "8888"
这个方法有两个参数,第一个是标准的ado连接字符串,第二个是服务器端占用的端口,这里设置为8888
这里需要注意的是连接字符串中的数据库路径,这个数据库就是adoDemo里的数据库。我这里将它复制到
了当前目录下。
2.3 在Form_Unload事件中加入:
NetDataServer1.Down '关闭服务,释放资源...
2.4 编译该项目,得到Server.exe
这样,服务器端就构建完成了,不错,就是这么的简单。
(详细代码见刚刚下载的netdatademo/服务器端)
第三步:更改原有单机版程序为客户端程序(只须增加两行代码):
3.1 打开原有的项目,将目录下的cs.mdb移动到刚刚建立的服务器端的目录下。是的,客户端不需要数据库,
因为数据库存在服务器端。
3.2 第一步-->>> 注释或删除掉原有ADO本地连接代码
'Public DB As New Connection 'ado对象中的连接对象
该代码在Form1的第一行
3.3 第二步-->>> 在Form_load事件中,注释或删除掉原有ADO本地连接的代码
'DB.CursorLocation = adUseClient '设置数据库为本地数据库
'DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;"
3.4 第三步-->>> 在Form_load中,增加一行代码:
Db.Start "127.0.0.1", "8888"
启动客户端,指定服务器的ip和端口,为了便于测试这里设置的是本机ip
实际应用中需将服务器端运行在远程服务器上,这里就要填远程服务器的域名或ip了。
注意:这行代码需增加到 Call Fillfg 过程之前
3.5 第四步-->>> 在Form_Unload事件中,注释或删除原有的ADO关闭本地连接的代码:
'DB.Close '注释掉原有ADO本地连接代码
然后增加第二行代码:
Db.Down '关闭客户端控件...
注意:这行代码一定要加上,不释放资源会影响客户端性能的。
3.6 第五步--->>>最重要的一步!那就是加入NetData控件,并且将NetDataClient放到form1上,将它的name改名为DB
注意:为了兼容旧有的代码一定要将NetDataClient控件名改为DB
3.7 编译该项目,得到Client.exe
至此,单机版向网络版的升级就大功告成了。先运行server.exe,再运行3个client.exe,测试一下~
速度是不是很快。如果你有自己的internet服务器,可以将数据库和server.exe复制到服务器上,在服务器上运行。
(别忘了在服务器端注册NetData控件)。client.exe可以在多个客户端运行。这样基于vb6+access的c/s架构应用就搭建完毕了。
基于mssql的应用也可用此方法升级,优点就是用netdata替代ado直连mssql的方式,会带来巨大的性能提升。因为ado直连远程
mssql实在是太慢了,查询量稍大就会超时机器不稳定,使用netdata就从根本上解决了这个问题。
本文只是介绍了netdata的一部分简单的应用,如:事务、存储过程、服务器端处理业务逻辑等一些实用性的东西没有探讨,
netdata不仅能胜任,而且十分高效。更多的netdata功能等待您的发掘~
ps: NetData是我在实际工作中提炼出来的,基于Winsock,ado和xml技术的vb6用户控件。此控件为共享软件,大家可无限制的使用于
非商业性应用中。有任何好的建议或对此控件的疑问,请联系我QQ: 170836023
[解决办法]
我在本机试了试很不错!
[解决办法]
很好 收藏了
[解决办法]
收藏了!
[解决办法]
不错!
[解决办法]