应用程序服务器 操纵后台数据库问题(100分)

  • 主题发起人 主题发起人 dagang
  • 开始时间 开始时间
D

dagang

Unregistered / Unconfirmed
GUEST, unregistred user!
我才用SOCKETCONNECTION
中间层 REMOTEDATAMODULE:--> ADOCONNECTION ADOQUERY DATASETPROVIDER
在建立远程对象(ONCREATE) 时,我想操作 QUERY 打开后台几个数据表,生成一个
Treeview,再传给客户端.
结果在打开数据表时就出错,不报错,中间层死掉了.
什么原因??
用什么方法生成Tree好??
 
在客户端做就可以了。
 
请教 dagang:
您如何生成的TreeView?又如何传给客户端?
 
如果你不是一定要在应用服务层生成TreeView的话,就让客户端接受数据,
自己生成TreeView吧。传TreeView比起传数据,不但有难度而且浪费资源。
如果你想做三层结构的程序建议你先看看DELPHI的例子。
目录:Borland/Delphi5/Demos/Corba/Datamodule
 
把界面留给CLIENT,这是3层开发最基本的原则哦。
 
我需要根据三个表来生成一个树,若在客户端进行,
客户端时间:= 数据表传输时间 + 生成树的时间
若有N个客户端,它们都要花这么多时间, 浪费
现在采用:在中间生成树--->STREAM-->客户端--->还原
则生成一次后,多个客户端可用.
对于这个问题: 我现在在APP SERVER的FORM上用 ADODATASET,直接对数据库操作
生成了TreeView,但不知是否有更好的方法.
而且另有一问题: Treeview.Savetostream(STREAM)
再ANOTHERTreeview.Loadstream(STREAM) 却不显示出树来.
把STREAM.SAVETOFILE,可以看到树的内容
奇怪!!
 
建议:
1、数据表传输时间不需要很多时间,除非在INTERNET上或者你动不动把整个表传送。
2、生成树的时间如果很长,呵呵,你的树未免太大了吧,为什么不和大多数的做法(
资源管理器、SQL EXPLORER。。。)开始只显示树根或一级,在用户需要的时候再
展开呢?

 
to dagang:
你的思路很不错,在服务端生成TREEVIEW再传至客户端,这样客户端的界面可以受
服务端而变动,这在多权限不同界面的软件中很有用(安全性较高)。
我也一直在想如何将TreeView传到客户端的问题很久了。我以前的想法是用一个固定
字段的数据集(NodeID, NodeText, NodeData, ParentID)来解释TreeView结构,很是繁杂。
不过现在我想,如果有好的能提供Data:Variant数据结构组件(比如: TStack, TTree)就好
传数据了。
希望提供更好思路。
 
为什么你不能把他们生成TREEVIEW的文件(SAVETOFILE方法),然后将这个文件传递到
CLIENT端,再用LOADFROMFILE方法显示呢?
 
TO Z_CD:
传递的方法是有的: treeview.savetostream(serverstream);
ddStream->olevariant -->我抄了一个函数可以进行转换
olevariant->clientstream
client:treeview.loadfromstream(clientstream)
another problem is : after loading, treeview of client display nothing!!


 
to rax:
what's problem with save/loadstream in TTreeview?
 
to rax:
what's problem with save/loadstream in TTreeview?
DAGANG: WHAT WORDdo
YOU WANT TO SAY?
DEFRENCE LIKE ‘save/loadstream’ AND ‘SAVE/LOADFILE'
TO SEE help of delphi.

 
to dagang:
你在LoadFromStream前先执行一下 TStream.Position := 0;
希望你能将那套函数发给我,好吗? My EMail: z_cd@21cn.com
 
to dagang:
收到。建议你使用 TreeNT 控件,比Delphi提供的TreeView好很多,其SaveToStream能
保存节点的其他一些状态,如:ImageIndex, Font, Checked 等等。该控件在
www.delphipages.com里能找到。
 
谢谢Z_CD.
目前基本能实现了,不知是否有更好的办法.
 
多人接受答案了。
 
你的思路正好相反!
 
什么意思?
你的...
 
都结束 n 天了,还讨论么?
 
后退
顶部