现在已经开发出一套分类记事用的小软件,用DELPHI和ACCESS做的单机版,想加上一个功能,能把自己想共享的某一个类别的信息共享给指定的人,或者大家我现在的想法是这样的,在网络上租一个SQL服务器,写一个服务端,当客户端向服务器发送数据时,先返回一个加密的数据库的用户服务名和密码,这样客户端连上远程的SQL,把指定的数据添加到远程SQL库里,别人看的时候也是这样先连库得到加密的密码,自己在客户端中解密后连上远程库,能看到上面的共享信息(当然是一条数据来代表,比如1用户A共享了"如何做网页"),一点导入就可导入到自己的库中成为自己的资料
这样做是能成功,我也做过类似的TCPIPCLIENT INDY里的东西,只不过感觉这样远程直接连库一是密码在客户端怕出安全问题,二是直接连库是不是很慢,如果人多的话,比如网游,腾讯,这些系统是不是不直接连库,而是一直通过INDY中的控件向指定PORT发送数据串来实现?

解决方案 »

  1.   

    用asp.net就成网页了吧
    可以用asp或者asp.net做数据传输的接口
    客户端用Delphi调用
      

  2.   

    要啥接口,共享信息直接来个收藏功能 就行了,就像CSDN
      

  3.   

    楼上没明白一个问题,网页版的单机记事本一定不好用,操作上不如CS的爽,所以网页永远是网页不信你可以下载一下看看我这个小软件
    http://www.duyingsoft.com/MySelect/MySelect_setup.exe
    所以用BLOG和QQ空间这样的东西也只是简单的记一些突出性的东西,如果要把自己的一个方面的经验全记下来,随时调用,甚至每天打开无数次的时候,还是用CS的东西来实现,不能交给IE这个蹩脚的软件,所以我的想法是基于日常经验总结心得体会办工方面的人员,把自己的东西相互共享所以我想到了二楼的用ASP用一个中转,但是还想到了用端口直接发包的方式,服务端开一个软件,专门接收
      

  4.   

    购买在有些大公司的财务软件和ERP都要用BS架构了,没感觉出哪里差来,毕竟还有AJAX
      

  5.   

    我怎么就对CS情有独钟呀,呵呵,先不谈BS,反正就感觉BS有些地方不舒服,就像QQ一样,哪天出个网页版一定会用起来不方便面从速度和界面上,我现在的想法有一点突破了,就是用INDY传数据,和指令,这样最安全,不让它直接连库了
      

  6.   

    行了,开始做了,具体问题又来了,1从客户端向服务器发数据,发一条那边向库里插入一条2别的客户端能看到共享的数据表,这里有问题,数据怎样传给客户?难道在服务器端建一个IDTCPCLIENT向回传吗?
      

  7.   

    关于问题2:
    既然用过INDY,那肯定知道怎样给客户端回传信息的,INDY9的参数是TIDPEERTHREAD,INDY10的参数是ACONTEXT,实在不明白看看INDY人DEMO
      

  8.   

    他们用不用INDY我不知道,不过肯定不会是直连数据库的
      

  9.   

    如果是一个表呢? TIDPEERTHREAD是不是一个记录?
      

  10.   

    还有,这是我发数据的方法,发String 250长度以内的可以,怎样把ACCESS中备注格式的发过去?
    type
      MyRecord = Packed Record
      Myid : Integer;
      Mysn: String[250];
      Myifshare : Boolean;
      myshuyu:string[250];
      mycontent:String;
      mysubject:string[250];end;
    with MySendingRecord do
      begin
      mycontent := DataModule1.ADOQuery1.fieldbyname('content').Value  ;
      mysubject:= DataModule1.ADOQuery1.fieldbyname('subject').asstring;
      myshuyu:= DataModule1.ADOQuery1.fieldbyname('shuyu').asstring;
      Myid := DataModule1.ADOQuery1.fieldbyname('id').Value ;
      Mysn := sn;
      Myifshare := ifshare;
      end;
    // send and receive
    with  IdTCPClient1 do
      begin
      Host :='219.232.245.198';
      Port :=9099;
      Connect;
      WriteBuffer(MySendingRecord,SizeOf(MySendingRecord),true);
      ReadBuffer(MyReceivingRecord,SizeOf(MyReceivingRecord));
      Disconnect;
      end;
    end;