首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 【原创】增加两行代码将你的VB6+Access单机程序升级为网络版(附:VB6在Internet环境下访问远程数据库最高效的方法) [已结帖,结帖人:mylpc]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • 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  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhang18444
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:03:441楼 得分:13
    我在本机试了试很不错!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fu0212
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:13:132楼 得分:13
    很好 收藏了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ken2002
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 01:29:343楼 得分:12
    收藏了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CathySun118
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-08-29 09:04:024楼 得分:12
    不错!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hjessica
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 09:45:445楼 得分:10
    引用 3 楼 ken2002 的回复:
    收藏了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yangao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 10:19:436楼 得分:10
    哦~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wang19847277
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 11:06:267楼 得分:10
    同志们
    顶啊..........!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenyubo1977
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 11:14:558楼 得分:10
    好东西
    收藏起来以后可能有用
    谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • KissRose
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-30 09:59:479楼 得分:10
    下载收藏了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • XING979020
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-19 21:02:3510楼 得分:0
    如果我没有自己的服务器.只是网上一些免费的虚拟服务器又怎么办呢?我不可能运行SERVICE.EXE呀?那不是没用?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ttjacky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-02 23:48:2811楼 得分:0
    看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hudayanno1
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-03 15:37:5912楼 得分:0
    恩,我要试一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • crazyxf
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-08 17:29:0413楼 得分:0
    对,没用,这个东西相当于数据库访问中间件,这个东西也就c/s方式简单移植到互联网上可以,如果你本身就是b/s结构,这东西对你没啥用,当你想到用他的时候,你早就管理着自己能摸到的n台服务器了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mzgyy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-08 20:53:2614楼 得分:0
    收藏了!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved