利用NetData控件将一个ado+access的单机版应用扩展为网络版

2019-11-22 16:30:00
tmtony8
原创
115

一个典型的ado+access的应用,其中包含了增、删、改、查的各种操作.由于代码比较简单,这里就不赘述了。

    

我们的任务是如何将这个典型的单机应用,只增加两行代码使其扩展为网络版。

这里我们使用NetData控件,它是 基于Winsock,ado和xml技术的vb6用户控件

第一步:下载并注册NetData控件:   

第二步:建立服务器端程序:

 1、新建一个vb工程,并保存,加入刚刚注册好的NetData控件,然后将NetDataServer控件放到form1上。
 2、在Form_Load事件中加入:
                NetDataServer1.Start "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;", "8888"
            这个方法有两个参数,第一个是标准的ado连接字符串,第二个是服务器端占用的端口,这里设置为8888
            这里需要注意的是连接字符串中的数据库路径,这个数据库就是adoDemo里的数据库。我这里将它复制到
            了当前目录下。
 3、在Form_Unload事件中加入:
                 NetDataServer1.Down   '关闭服务,释放资源...
 4、编译该项目,得到Server.exe
        这样,服务器端就构建完成了。
        (详细代码见刚刚下载的netdatademo/服务器端)
第三步:更改原有单机版程序为客户端程序(只须增加两行代码):
1、打开原有的项目,将目录下的cs.mdb移动到刚刚建立的服务器端的目录下。是的,客户端不需要数据库,
            因为数据库存在服务器端。
2、第一步-->>> 注释或删除掉原有ADO本地连接代码 
            'Public DB As New Connection   'ado对象中的连接对象
            该代码在Form1的第一行
 3、第二步-->>> 在Form_load事件中,注释或删除掉原有ADO本地连接的代码
            'DB.CursorLocation = adUseClient  '设置数据库为本地数据库
            'DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;"
 4、第三步-->>> 在Form_load中,增加一行代码:
            Db.Start "127.0.0.1", "8888"
            启动客户端,指定服务器的ip和端口,为了便于测试这里设置的是本机ip
            实际应用中需将服务器端运行在远程服务器上,这里就要填远程服务器的域名或ip了。
            注意:这行代码需增加到 Call Fillfg 过程之前
 5、第四步-->>> 在Form_Unload事件中,注释或删除原有的ADO关闭本地连接的代码:
            'DB.Close '注释掉原有ADO本地连接代码
            然后增加第二行代码:
            Db.Down '关闭客户端控件...
            注意:这行代码一定要加上,不释放资源会影响客户端性能的。
 6、第五步--->>>最重要的一步!那就是加入NetData控件,并且将NetDataClient放到form1上,将它的name改名为DB
            注意:为了兼容旧有的代码一定要将NetDataClient控件名改为DB
 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不仅能胜任,而且十分高效。
     


分享