-

- 加为好友
- 发送私信
- 在线聊天
-
mylpc
- 等级:

- 可用分等级:
- 总技术分:
- 总技术分排名:
- 结帖率:
|
| 发表于:2008-08-18 20:22:30 楼主 |
本文解决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 |
|
|
|
100
修改
删除
举报
引用
回复
| |