三层高手看过来!!ADO连接远程数据库(C/S),急!!!

zheming8 2002-10-08 10:53:02
我在做一个大学的教学管理系统(C/S),系统结构大致如下:

客户端-------->IIS服务器(托管服务器)------->后台数据库(SQL SERVER 200)

客户端和IIS服务器分别在两地,通过Internet连接。我想用在IIS服务器上建一个应用服务程序,来调用后台数据库。
同时,在客户端我想用ADO通过IP地址连接在Internet上的IIS服务器,不只这样是否可行??
ADO是否可以通过IP地址来连接Internet上的IIS服务器,如果不行那用别的什么方法来连接呢?
对我来说最好通过IP地址,因为我不想通过拨号的方式连接,因为那太耗费资源了!
希望大虾们,能帮我提出解决方案,分我一定会给的!!
最好有现成的代码!!

...全文
82 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheming8 2002-10-08
  • 打赏
  • 举报
回复
to rwdx(任我独行):
你说的那几种方法能说的具体点吗?我对clientdataset 和
socketconnect 不是很熟悉,我想知道具体怎么实现,有例程吗?
还有你说的“ado连接你的internet上的数据库服务器”这个怎么实现啊?
谢谢你的回复!!

to wxjh(我很逍遥):
你说的用midas“关键是连接好,一旦连接好了,就像操作一般的单机数
据库一样”我很想这样的操作,能给出例程序吗?
wanderung 2002-10-08
  • 打赏
  • 举报
回复
两层转三层简单
wxjh 2002-10-08
  • 打赏
  • 举报
回复
关键是连接好,一旦连接好了,就像操作一般的单机数据库一样,不过你如果在你的远程数据模块中用的是 查询控件,就麻烦一些了,呵呵!
chinesetree 2002-10-08
  • 打赏
  • 举报
回复
就是三层体系统结构吧,实现时,有你受的,
up!
windtransient 2002-10-08
  • 打赏
  • 举报
回复
wxjh说的clientdataset + socketconnect就是三层结构的,实现不难!
rwdx 2002-10-08
  • 打赏
  • 举报
回复
客户端使用clientdataset,应用服务端使用socketconnect服务器连接数据库服务器,速度应该能满足你的要求,再或者直接使用ado连接你的internet上的数据库服务器
wxjh 2002-10-08
  • 打赏
  • 举报
回复
这就是midas
zheming8 2002-10-08
  • 打赏
  • 举报
回复
to windtransient(风雨过客):
我的程序分两部分(前台部分和后台部分),前台是B/S结构(通过IE来访问),我现在说的是后台部分采用C/S结构(因为有大量的数据录入,采用B/S结构不合理)!

to wxjh(我很逍遥) :
你说的clientdataset + socketconnect 是怎么个方法?可以用做三层结
构吗?
你能说的具体点吗?分我一定会给的!你做过类似的程序吗?有原代码
吗?我一定会给分的!!
wxjh 2002-10-08
  • 打赏
  • 举报
回复
用的是clientdataset + socketconnect
ado 是远程数据模块中连接mssql的别高错了
wxjh 2002-10-08
  • 打赏
  • 举报
回复
不过不是c/s结构哟!
呵呵!!
wxjh 2002-10-08
  • 打赏
  • 举报
回复
你的构想还可以,可以实现!使用socketconnect 连接 ,可以用机器 的ip地址
windtransient 2002-10-08
  • 打赏
  • 举报
回复
楼上说得对:乱!!!
给你点建议吧:
1、客户端-------->IIS服务器(托管服务器)------->后台数据库(SQL SERVER 200)
这种实现是可行的
2、拨号方式和通过IP地址原理是相同的,只是一个用猫一个通过internet网
3、你想在客户端安装程序,那我可以告诉你,到时候你有得累了,为什么不采用零客户(IE)方式呢,这样你只要维护IIS服务器就行了。
4、ADO是连接数据库用的,你怎么用来连接IIS服务器????
你可以这样做:
1、在IIS上做若干个CGI或IIS应用程序,用来提供WEB服务,
2、做一个业务逻辑层,用来连接数据库(采用ADO),并给IIS上的WEB应用程序提供数据(这才是三层结构)
这样客户机只要通过IE连接你的WEB服务器,就可以进行各种操作了
windtransient 2002-10-08
  • 打赏
  • 举报
回复
楼上说得对:乱!!!
给你点建议吧:
1、客户端-------->IIS服务器(托管服务器)------->后台数据库(SQL SERVER 200)
这种实现是可行的
2、拨号方式和通过IP地址原理是相同的,只是一个用猫一个通过internet网
3、你想在客户端安装程序,那我可以告诉你,到时候你有得累了,为什么不采用零客户(IE)方式呢,这样你只要维护IIS服务器就行了。
4、ADO是连接数据库用的,你怎么用来连接IIS服务器????
你可以这样做:
1、在IIS上做若干个CGI或IIS应用程序,用来提供WEB服务,
2、做一个业务逻辑层,用来连接数据库(采用ADO),并给IIS上的WEB应用程序提供数据(这才是三层结构)
这样客户机只要通过IE连接你的WEB服务器,就可以进行各种操作了
zheming8 2002-10-08
  • 打赏
  • 举报
回复
to:ruihuahan(飞不起来的笨鸟) ,outer2000(天外流星)
我想在客户端IP地址连接IIS服务器(就象CSDN的离线浏览器),不用拨号方式。(拨号连通后类似内部局域网,这不是我需要的)
听明白了吗?
outer2000 2002-10-08
  • 打赏
  • 举报
回复
乱!
ruihuahan 2002-10-08
  • 打赏
  • 举报
回复
首先,这不是三层的问题。
第二,拨号方式和你说的通过IP地址访问一台服务器也不是一个领域的问题。
dql_77 2002-10-08
  • 打赏
  • 举报
回复
关注
zheming8 2002-10-08
  • 打赏
  • 举报
回复
to long102(龙102)
能告诉我你的QQ吗?我想和你具体聊聊!
另外听说过ASAT吗?好像是用来做多层数据库的
  • 打赏
  • 举报
回复
有很多方法,其实你主要要解决客户端与
应用程序服务器的连接问题,可以用datasnap的
[socketconnection . webconnection .corbaconnection
或者6.0新推出soap开发的webservers的 soapconnection连接后台应用程序服务器,就看你的应用程序服务器的类型]
-->[clientdataset]
onedoteight 2002-10-08
  • 打赏
  • 举报
回复
用套接字连接,easy! But IP 必须固定哦! 麻烦¥¥¥
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

加载更多回复(6)
Middle ADO System 三层ADO的Internet远程数据库访问开发套件 获得最新版本: http//midado.cn 特点: 1、完全兼容Borland ADO Component的控件开发 从TCustomADODataset和TCustomADOConnection类继承,可快速从已完成或者开发中的程序进行升级和扩展 2、完全的三层架构 同时支持原生ADO访问模式和三层的扩展访问模式,开发过程同C/S模式一样,运行时设定Enabled属性,即可从C/S变成三层,随时切换模式。 3、后台自动连线机制 客户端在长时间使用过程中,如果网络异常断线,恢复后可继续使用业务功能,不用重新启动应用程序,更加适合在不稳定的网络环境中使用。 4、自动断线功能 客户端长时间不进行操作,服务端可暂时断开客户端连线,当用户需要继续操作时,通过后台自动连线功能,重新连接网络继续操作,对用户的操作没有任何影响。自动断线功能可充分利用系统资源,减少同时在线用户,同时保障每个用户的连接质量。 5、数据库共享连接池 多个客户端共享同一个数据库连接对象,可设定每个客户端独占数据库连接对象时间和自动回收时间。 大量减少数据连接数量,减少数据库的负载,极大提高数据库访问速度。根据设定的缓冲时间,可节约80%~95%连接对象资源 6、多数据库目录支持 一个中间层服务程序可同时提供多个数据库目录的服务,提供多个应用系统的多套数据连接并发服务 7、安全的Internet网应用 通过TCP/IP服务程序,提供Internet的外部数据访问功能,通过服务程序,隔离数据库的直接连接,有效保护数据库安全, 高效的数据压缩和加密传输,提高远程的数据访问速度和安全性。 8、服务端状态监控功能 对服务器的连线和负载状态进行实时监控,可查看每个客户端连接的来源和请求情况,包括数据的收发字节数 9、便于安装和维护 客户端不用装任何客户端数据库驱动和设置数据库连接对象,大量不同的客户端环境中进行客户端数据库连接设定,是需要花费不少人力。(例如Oracle) 使用场合: 1、需要安全的通过Internet远程数据库访问应用程序,如连锁加盟、各地办事处、等分布式应用 2、需要隔离数据库访问的高安全应用程序,例如在线实时交易软件、如股票证券、期货、外汇等交易等 3、大量客户端同时访问的应用程序,例如几千个用户同时连线对数据库造成重大负载的应用。 4、受到正版数据库软件用户连接数的限制,需要用少量许可提供更多客户端服务的应用。例如,10个许可提供给50个用户同时使用。
很久没有发布东东了,今天看到盒子上有朋友发布了个三层的东东, 下来大概看了看,貌似使用起来不太方便,曾经用过ASTA和RmoObject,都不是那么让人满意,BUG多,并且庞大需要安装,使用十分不方便。 为了继续支持我喜欢的DELPHI和可爱的盒子, 特发布个自己写的远程数据库对象希望能给大家平常的工作带来便利和高效(偶自己和同事们都用了挺长时间,十分稳定易用)。 用DELPHI的朋友少不了要和数据库打交道,一般小程序都使用ACCESS做数据库感觉十分方便,不用装服务端,客户端不用单独装驱动, 发布程序时直接目录一拷贝就完事,但缺点是不方便从其它计算机对它进行访问, 有了偶这个东东,就可以很方便容易的实现咯。 ps : 就是连接Oracle和mysql,客户端也可以不用装驱动哦 使用步骤 解压后找个地方存放 将GobUnit目录添加到delphi的搜索路径 将DXSockEnt30(我改过bug的版本)的3个子目录也添加到delphi的搜索路径 即可使用和编译所有偶提供的代码 FAQ: 这个东东都提供什么功能? 答:提供最简单方便高效的方式,通过ADO对象实现远程数据库 这个东东为什么不封装成控件? 答:本类以单元形式封装,只要加到搜索路径后直接引用即可,无需经过安装等麻烦的步骤。 这个东东适合应用在什么场合? 答:适合应用于小型分布式程序。 这个东东掌握起来有难度吗? 答:没有任何难度,就和你开发本地数据程序一样简单。 这个东东可以应用在我已有的程序里吗? 答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定。 服务端的端口号是多少? 答:服务端的端口号可以随意设置,只要不和其他程序冲突就可以,并且客户端连接服务端时必须端口一致. 如果服务端重启了客户端需要重启吗? 答:不用,客户端只要连接上服务端以后就有自动断线重连的功能。 这个东东免费吗? 答:完全免费,并且开放所有源代码,你可以随意改进,传播它,当然如果更好用了,记得给我也发一份 :)(要保留偶的版权和注释信息哦) 这个东东使用到了那些控件? 答:delphi的ADO控件,INDY,以及第3方Dxsock(服务端用)。 同时发布的还有我自己积累的几个常用单元,有日志,调试,tcp的通用服务和客户端模块等,同样都是十分有用的东东。 这个东东有demo程序吗? 答:有最简单的示范程序,但时间关系只写了最简单的演示代码,还有很多值得你去挖掘的实用接口和单元。 我有了改进版本,怎么联系这个东东的作者? 答:QQ 22900104 ,Email 22900104@qq.com 马敏钊 发布这个东东的目的是什么? 答:好用的东东大家分享,共同学习,共同进步,希望大家都能发扬开源精神。 构架说明: 大概是这样的,偶有一个服务器对象,负责提供数据库服务,在需要提供数据服务的程序里创建它即可。 使用起来十分简单 首先引用服务端单元 uses UntRmodbSvr; //创建远程服务对象 (参数1 服务端口号 日志对象,如果不需要记录日志请填nil) Gob_RmoDBsvr := TRmodbSvr.Create(FSvrPort, nil); //连接数据库 可以是ADO支持的所有数据库 调用TDBMrg提供的获取各种数据库的链接字符串即可,这里连接Access数据库 Gob_RmoDBsvr.ConnToDb(TDBMrg.GetAccessConnStr('cfg.mdb')); 到此为止,2行代码使你的这个程序具有了将数据库发布出去的能力,其它机器的程序可以方便的通过它访问到数据库,像使用本地数据库一样。 客户端只需连接服务端即可,不管服务端是什么样的数据库,无需安装任何数据库驱动。 uses UntRemSql; //创建客户端对象 RmoClient := TRmoHelper.Create(); //连接服务端 填入服务端地址和端口(与服务端端口一致即可) Result := RmoClient.ReConnSvr(ISvrIP, Iport); 2行代码使你的客户端程序具有了方便的访问到远端的数据库,像使用本地数据库一样,并且你原有的单机数据库程序可以很方便改为远程数据库。 具体使用方法可以查看DEMO程序 为了方便交流建了个QQ群,欢迎大家参与 15637473

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧