我现在有两种解决方案:
   1. 利用SQL Server本身提供的远程访问的功能
   2. 自己写一个C/S结构,利用一个与数据库在同一机器上的小Agent来实现交互?
不知道哪一种可行性更好些?请大家指教 !!! //bow

解决方案 »

  1.   

    根据我起先做过的oracle + VC的经验,如果考虑速度,还是用dbms本身的好!
    当然如果自己作灵活性大些
      

  2.   

    To yuanyingtanxi:分层?不太明白,请明示,谢谢。
      

  3.   

    利用sqlserver的客户端连接吧,再用ODBC,速度比自己用socket写要快。
      

  4.   

    利用VC和ADO做成自动化组件(COM的一种形式),放在Server上,至于Client端,VC、VB、VFP、ASP等均可使用
      

  5.   

    如果用ODBC是不是非得装客户端吗?只装一个驱动不行吗?
      

  6.   

    如果用ODBC是不是非得装客户端吗?只装一个驱动不行吗?
      

  7.   

    vc+ado可以直接访问远程数据的。
    我正在做,很简单。
    不知你们所指的安全性好是什么意思?
    身份验证吗?vc+ado也有的啊
      

  8.   

    三层c/s架构的安全性和性能还不错,我为一个小型企业做的两层c/s架构的管理系统已满足需求(odbc).
      

  9.   

    vc + ado 
    因为有远程的控制,所以这么组合是很舒服的!
    开发问题中有问题,我保持关注
      

  10.   

    我觉得还是自己写AGENT好,现在很多成功的应用都采用这种方法,速度上不成问题,就看你怎么写了,例如在服务AGENT中采用对象缓冲技术,相同的检索不重新打开数据库,无论从安全性,效率都比两层结构好。而且如果系统结构设计合理,当商业逻辑变了,不用升级客户端,多爽啊!
      

  11.   

    什么是两层c/s架构?什么是三层c/s架构?有点糊涂
      

  12.   

    自己写Agent的话,那么超时如何处理,也就是说,C/S之间每次调用都进行连接,一次调用完之后,断开连接呢?还是仅在连接之后,发送数据失败,才重新连接?这是第一个问题。
    第二,自己写Agent的话,那么加密的工作,肯定得自己做了吧,尤其是第一道权限访问部份。那么,是不是说,采用TCP的方式,在访问时包括数据的传输都需要经过加密处理?
    第三,客户端访问数据时,除了调用过程,只要一条命令就可以了,但是返回过程中的值话,是怎么一个请求方式呢?一条记录,一次请求?然后将记录利用一个结构体传送回来?还是有什么更好的方式?
    BTW:自己写Agent的比起用SQL Server本身的远程访问,利弊又如何呢?
      

  13.   

    To: Brierbird(荆棘鸟) 你的问题我当时也考虑过,但一直没有头绪,所以后来我就选用了ODBC的方式,有式老土吧,关注!
      

  14.   

    我理解你们说的agent就是在服务端也安装一个程序,客户端发送操作命令给agent,agent在本机执行,得到数据集后传给客户端而已.和远程控制工具类似吧,我觉得没必要的.
    问一个问题:
    如果你在客户端编写一个功能类似于查询分析器的数据管理软件,能远程连接数据,还能方便的 操作数据,一切加密什么的都用sql server自带的,只要设置就可以了.
    你还会选择自己去编麻烦的agent结构吗?(虽然不难,但我觉得舍近求远了)
      

  15.   

    我做的是一个股票的行情数据服务器,同时对7万用户服务,并发请求峰值达到5000用户是很常见的,我不知什么数据库可以同时支持5000的连接的并行查询,而且我提供的全年的行情数据,要想每个客户立刻就得到自己想要的数据,你认为2层的系统结构合适吗?用两层结构,用户端都要设置数据源,直接访问数据库,安全性? 当然用AGENT要有自己的包结构,加密压缩,授权访问是少不了的,但这样处理比起用一台昂贵的DB服务器成本低多了(支持5000用户并行查询)!性能却提高了很多,对数据库服务器要求不高。而且,agent和数据库服务器是在局域网中运行,不存在联机超时的问题(当然程序写的有问题另当别论,至少我一年来从来没有遇到过),而且数据库服务器与广域网完全隔离,安全性完全有保证。
      

  16.   

    我作的是小儿科。
    楼上,你作的是网络数据发布吗?
    asp或什么的。
    我作的仅是一个前端程序,特别简单的,好象户籍管理系统之类。
      

  17.   

    To Tasehouny: 你所说的,我也都明白,如果真的做的话,那么这样的话,效果肯定更好,客户端是根本就不需要驱动支持了。
    但是,我还有一个关键环节上的疑问,那就是:这样做的话,一旦有新的表,新的查询语句的话,那么,对于Agent来说,它只能也随之而更新了?是这样的吧?因为我觉得利用Agent,那么,对于每种表,如果是需要返回记录值的话,那么,就必然需要为其定制一个结构,来让客户端和Agent共同识别。不知道我的理解是不是对,请指教。
    另外,我很同意这样做对数据库的要求不高,难怕是本身没有远程访问功能的数据库,如dbf文件,mdb文件,也都能实现功能,一切尽在Agent的掌握之中。
      

  18.   

    To alidiedie: 我觉得Tasehouny做的肯定不是ASP的东东,应该是C/S结构的程序,而不是B/S
      

  19.   

    如果有新表,当然要更新ANGENT了,但一般在设计系统结构的时候,已经考虑了扩充性,例如,保留一定的结构空间,包ID的定义范围,以及错误捕捉和处理。一般情况下更新是不大的。即时更新,也是向下兼容,不影响老用户的使用。对AGENT本身来说也是多层的,AGENT由多个组件组成,甚至有些是数据库服务器上的视图,存储过程等,很多情况下升级AGENT,可以不用重新编译。