有关“ASP--->XML--->COM+--->DB”的问题,200,希望大家踊跃提供好的解决方案。(200分)(200分)

  • 主题发起人 主题发起人 小梅
  • 开始时间 开始时间

小梅

Unregistered / Unconfirmed
GUEST, unregistred user!
目前我已实现如下结构:
ASP--->COM+--->DB
所有的业务都在ASP中实现,这因为有专业的ASP程序员。我所做的COM+只实现向ASP提供
数据连接或Recordset,由于公司的服务器是给别人托管的,这样存在很大的不安全问题。
所以我目前的思路是想用XML来进行数据包传送,所有的安全处理放在COM+中,ASP只实现
接收、解析、处理XML数据包,提交时返回XML给COM+
可是不明白XML的安全性如何。
如下我是要提问的几个问题:
1、怎样在COM+中返回XML给ASP
2、在ASP中对数据进行修改,提交修改是怎样在ASP、COM+进行处理的
 
有必要加入ASP层吗? SQLServer本身就可以生成XML数据,也可以利用存储过程对
XML的数据提交到数据库,
所以,自己用加密的Socket连接就可以发送XML数据, 客户端可以自动生成XML
 
To LiChaoHui,
你说的那种方法是可以实现,但这样不是增加DB的负荷吗?
还有Client是IE,你那种方法可以这样吗?
希望你能提供一些详尽的解决方案。
 
如果是B/S模式的, 那就更简单了,
由数据库生成XML, 为其指定一个XSL文件, 可以直接转化为html文件
至于提交的数据,可以直接让客户端生成 xml数据提交
不过这样一来, 数据的安全性就很成问题啦
 
搂主要用COM+,自然是为了减少RDBMS的负荷以及利用COM+的事务管理和Object Pooling,你们老让他改B/S模式干什么?
我有个简单的方法,也是书上看来的:
服务端加个TClinetDataSet,然后让他连接服务端的DataSetProvider.这时你要的XML数据就是vData:=ClinetDataSet.XMLData;
要想改数据,可以:ClinetDataSet.XMLData:=vData;
ClinetDataSet.ApplyUpdates(0);
 
to LiChaoHui
to xiaasp
谢谢你们的回复,不过我不是B/S结构,是多层结构,而且客户端是IE,不是GUI。
如果客户端是GUI,则比较好实现,关键现在是IE客户端,若服务端将XML传出,不知用
什么数据类型能够实现。to xiaasp,你的回答对我有点提示,稍后去试试,谢谢!!!
 
客户端是IE,而且还不是B/S结构, 那是什么呀, 想不出来
 
小梅:
我最近一直苦于ASP--->COM+--->DB这样的结构,你可以告诉我你怎么实现的吗?
我的邮箱是ivan526@21cn.com,我可以跟你学习一下吗?
如果可以帮我解决了这个问题,真是万分感谢了。
 
ASP直接访问数据库,难道不好吗?
 
to LiChaoHui
对不起,我写错了,我用的是B/S结构,
只是想让COM+传XML数据包给ASP处理,
目前不知在ASP中是怎样处理的,不知能不能使用
ADODB.Recordset加载XML数据包,然后对ADODB.Recordset
进行相应的编辑,保存时ADODB.Recordset打包XML数据包传回给
COM+对象进行处理,不知这样是否可以,执行效率如何。
还有是不是可以使用MSXML进行处理,不太清楚它是如何处理的。
 
为什么用xml呢?
听说它的的数据量较大,我用的是ado集来传,如何?
 
to lmeiing
这样我试过,安全性不好,如果这样,网管就可以访问你所有的数据库信息,
关键是我公司的主机是给别人托管的。所以想用XML只传出数据包。
 
安全性是可以控制的, 但是数据不能保密
由数据库可以直接生成XML数据, ASP负责读取, 并关联到一个xsl文件
完成数据显示,
对于提交的数据,可以直接传递给存储过程,
由存储过程完成数据的更新,
参数中加入用户登录时产生的加密用户名和密码加密后的字符串,
这样,别人不能随便修改数据了
提交的XML数据,可以由客户端调用JavaScript进行生成(简单的字符串运算,不用解析)
提交给,ASP页面, ASP页面将其传递给存储过程
 
只传集也可以访问你所有的数据库信息?着我倒是不知道,
但xml的数据量是个问题阿,如果你的要求不高倒是可以。
 
to LiChaoHui;
你能给我一个实例吗?因为我不了解ASP。
我的Email:mgq8@sina.com
 
确实!XML数据传输的效率只有ADO数据集的5%左右。
我也想到几个问题:
1 数据库通过FOR XML查询生成XML数据, ASP再读取, 并通过xsl架构显示,这一步在ASP中如何作到?需要一个简单的ASP代码。
2 多个ASP提交对于数据库的操作有没有最大连接限制或互相间的效率影响?如果有这个限制那么通过加一个COM+是否可以解决?
3 “提交的XML数据,可以由客户端调用JavaScript进行生成(简单的字符串运算,不用解析)提交给,ASP页面, ASP页面将其传递给存储过程“这部分的实际代码??
 
数据传输,是没有问题的,关键是应用的响应速度和查询效率,算法更重要
而且,扩展样式表文件 xsl可以在本地缓存, 相比之下,效率更高一些,
而且,某些高人说过, 使用XML查询数据可以提高网络传输的效率,因为
XML不是按记录传送的,它一次可以传送多条记录, 这个方面来说, 性能更好一些
至于最终的结论,没有对比,不好说话
将一个SQL读取到的XML数据,通过样式表转化为Html,代码很简单, 难在设计一个
较好的xsl文件
对于并发操作, 由于所有的更新和数据操作都在存储过程内完成,所化的时间开销更小
同一时间内可以为更多的用户服务,实际上, 50个用户同时提交数据的可能性是很小的
你统计一下你每天的数据量, 或者高峰时间的数据量就可以知道
如果有500用户在线,他们只有1/20的时间提交数据,那么25个数据库连接就可以负担
ASP将XML文档的内容作为存储过程的参数,传递给存储过程,
由存储过程完成解析,和数据操作,
当然,用JavaScript来生成XML数据,需要熟悉JavaScript和XML数据规范
至于,具体的做法,在SQL Server2000 的联机帮助里面可以找到相关的解释和例子
查找关键字:
 
to LiChaoHui
谢谢你的回复,不过我还是不太清楚怎样去做。
我得去看看数据库的帮助了。
 
FOR XML
OPENXML
使用 OPENXML 编写 XML
sp_xml_preparedocument
sp_xml_removedocument
返回的数据是多条记录,只有一个字段,文本型字段,
遍历所有记录,并把所有记录的内容合并成一个长的字符串就可以了
 
see it
http://www.fawcette.com/xmlmag/2001_12/online/online_eprods/xml_dwhalin11_29/default.asp
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部