我使用IntraWeb做gis开发,需要在服务器端打开一个对象保存用户端的操作状态,
如代码示例:
var MyObj:IMap;
MyObj:=coMap.Create;
MyObj.LoadMap('china map',1);
UserSession.UserObj:=MyObj;
但是这个UserSession.UserObj只是在这个过程中存在,过程结束就没了。也就是说还是非状态连接。我所知IntraWeb可以支持一些对象的状态连接,但是对于大部分CCOM/OLE都不支持状态连接,请哪位高手帮忙解决。分不够还可以加200。

解决方案 »

  1.   

    你可以在IWCONTROLLER单无中加一个你所要的对象就可以了这个对象在每个过程中都能用
      

  2.   

    我主要是希望让Session记住这个对象的状态,我在controller中已经定义了这个对象
      

  3.   

    intraweb的例子看过了,只能保存datamodule的对象,其他对象保存不了
      

  4.   

    可以自己定义在controller的
      TUserSession = class
      public
        Code:String;
        Name:String;                           
        Fdname:String;                       
      end;
      

  5.   

    楼主大概没理解,我再说详细一点:)
    定义部分:
    TUserSession = Class
    Public
      myObj:TMap;
    end;
    实现部分:
    var mapObj:TMap;
    mapObj:=TMap.Create;
    mapObj.LoadMap('china',1);
    TUserSession.myObj:=mapObj;
    一直到这里都没有问题
    可是在别的过程调用TUserSession.myObj的时候,该myObj
    已经……Free了,我不能每次调用该对象时候都LoadMap一次,
    因为一要记住用户对Map的操作状态,二是LoadMap的时候时间
    比较长……所以,不知道怎么才能够保存这个对象的状态?
      

  6.   

    定义部分:
    TUserSession = Class
    Public
      myObj:TMap;
    end;
    实现部分:
    var mapObj:TMap;
    mapObj:=TMap.Create;
    mapObj.LoadMap('china',1);
    TUserSession.myObj:=mapObj;