这样的结构是三层吗(150分)

  • 主题发起人 angleli1981
  • 开始时间
A

angleli1981

Unregistered / Unconfirmed
GUEST, unregistred user!
[8D]这样的结构是三层吗

1。这样的结构是三层吗,我用ClientDataSet+scoketconnect连接服务器应用程序的数据模的DataSetProvider,通过DataSetProvider过处理数据。

2。如果是,那么这样的结构中中间层是什么啊,如果不是,那你们所说的中间层是指什么啊,请给个例子给我好吗?

3。如何在三层中实现事务功能啊

1。这样的结构是三层吗,我用ClientDataSet+scoketconnect连接服务器应用程序的数据模的DataSetProvider,通过DataSetProvider过处理数据。

2。如果是,那么这样的结构中中间层是什么啊,如果不是,那你们所说的中间层是指什么啊,请给个例子给我好吗?

3。如何在三层中实现事务功能啊
 
偶用DCOM联,感觉在windows上用DCOM方便些,MTS对事务的支持不错。
 
能更详细说一下如何做吗
 
详细?呵呵,BBS上打字很辛苦的耶 ^_^
你找本书来看吧,这样更明白。
有本叫《delphi6彻底研究》的书不错,你可参考一下。里面对delphi的c/s和多层应用有着
详尽的描述。
 
谁能说说在三层编程的经验啊(特别是在使用事务上)
 
delphi对MTS支持不好
 
多层开发主要是应用服务器,
最好用Com做应用服务器,封装逻辑
 
和两层一样起事务呀
中间层用连接池技术实现更多的用户连接,中间层主要是对业务的封装
// 过程(或函数)名:iDocProcSetDocTopicRelation
// 功能描述:设置文档主题域的父子关系
// 参数说明:输入参数:
//I_TopicCode:WideString ///文档主题域编码
//I_TopicParentCode:WideString //变更后的文档主题域父编
//输出参数:
//O_Result:WideString//执行结果
// 时间:2002.3.5
// 修改者:
// 修改时间:
// 该调用其它模块说明
// 调用该模块的其它模块说明
procedure TPompPubRdm.iDocProcSetDocTopicRelation(const I_TopicCode,
I_TopicParentCode: WideString; var O_Result: WideString);
var
//得到系统时间
V_SysDate :WideString;
//sql语句
V_SQL :string;
begin
DbPomp.StartTransaction ;

ZQS_Qry_PubDocTypeMain.close;
ZQS_Qry_PubDocTypeMain.SQL.clear;
//得到数据库后台时间
iPubProcGetSysdate(V_SysDate);
//生成修文档主题域父子关系的标准SQL语句
V_Sql :='update DOCTOPIC set TOPICPARENTCODE=:p1,UPDUSER=:p2,';
V_Sql :=V_Sql+' UPDDATE=:p3 where TOPICCODE=:p4';
ZQS_Qry_PubDocTypeMain.sql.add(V_Sql);
ZQS_Qry_PubDocTypeMain.ParamByName('p1').asstring :=I_TopicParentCode;
ZQS_Qry_PubDocTypeMain.ParamByName('p2').asstring :=G_RecUserInfor.USEDID;//G_RecUserInfor.USEDID;
ZQS_Qry_PubDocTypeMain.ParamByName('p3').asdatetime :=strtodatetime(V_SysDate);
ZQS_Qry_PubDocTypeMain.ParamByName('p4').asstring :=I_TopicCode;
//执行语句,当成功输出参数为1失败抛出异常
try
ZQS_Qry_PubDocTypeMain.ExecSQL;
O_Result :='1';
except
on e:EDbEngineError do
begin
O_Result:='-1';
dbpomp.rollback;
iPubProcErrorHandle(G_RecUserInfor.USEDID,e);
exit;
end;
end;
try
DbPomp.Commit ;
Except
on e:EDbEngineError do
begin
O_Result:='-1';
dbpomp.rollback;
iPubProcErrorHandle(G_RecUserInfor.USEDID,e);
exit;
end;
end;
end;
 
顶部