Delphi之MIDAS三层完美解决方案----中间层构建

 

思路:中间层与客户端通过五个关键的接口过程进行交互操作(OpenData,SaveData,DeleteData,ExecRule,ExecProd)
OpenData:获取数据集。
          客户端传递数据标记给中间层,
          中间层根据数据标记请求和条件从数据库的配置文件中获取相关信息,
          得到数据,返回客户端
         
SaveData:保存。客户端传递修改后的数据集XML给中间层,中间层根据请求的数据XML,然后解释XML并执行相关规则进行数据更新


DeleteData:删除数据,客户端传递数据实体的标记,和记录主键,服务器对规则规则放在XML文档中,系统读取XML文档,进行验证,

 

ExecRule:校验规则

ExeceProd:执行存储过程
优点:
因为获取数据与更新数据过程的配置文件在存储在中间层中,那么更改与配置更为灵活,客户端不用处理SQL语句,这样,数据库的变化,不会影响客户端,

数据提交时使用自定义更新过程,无论从速度、控制、安全等方面来说,都可以快速开发与定置,有时候只需用记事本编辑一下XML文档即可
另外,用户提交的XML文档,可以用DTD进行校验。
维护简单,更新业务逻辑时仅需更新相应的规则XML文档,无需更改中间层与客户端
能应付多变的系统开发过程,即使系统的流程或逻辑发生重大变更修改也相当简单

缺点:
即使系统再简单,与需要编写大量的XML文档,需要对XML文档有个很好的认识!

 

得到数据

 

 

{------------------------------------------------------------------------------- 过程名: TErpMainServer.OpenData 作者: kevinlee 日期: 2005.04.30 参数: SqlID: Integer;客户端传递数据标记给中间层 const SqlWhere: WideString;条件 var Data: OleVariant;得到数据 var strMSG: WideString;错误提示信息 返回值: Integer 0:成功 非0:失败 -------------------------------------------------------------------------------} function TErpMainServer.OpenData(SqlID: Integer; const SqlWhere: WideString; var Data: OleVariant; var strMSG: WideString): Integer; begin //得到SQLID标记对应的SQL strSQL:=getSQLByID(SqlID); //对SqlWhere条件进行解析 ParseXMLWhere.XMLWHERE:=SQLWHERE; strWHERE:= ParseXMLWhere.SQLWhere; FreeAndNil(ParseXMLWhere); dsRead.Close; dsRead.CommandText:=strSQL; dsRead.Open; Data:=dsProvider.Data; dsRead.Close; //得到数据 返回 end;

你可能感兴趣的:(数据库类,编程技术,DELPHI编程)