D
davidc
Unregistered / Unconfirmed
GUEST, unregistred user!
我公司现在正在进行一个大型MIS系统的开发,平台为Windows+SQL Server 7,开发工具
是Borland Delphi 5(注意:是Delphi),我们的技术总监定义了一种三层系统的架构,简
我公司现在正在进行一个大型MIS系统的开发,平台为Windows+SQL Server 7,开发工具
是Borland Delphi 5(注意:是Delphi),我们的技术总监定义了一种三层系统的架构。
备注:该技术总监多年以来一直从事UNIX平台下的应用开发,对C语言比较熟悉,对Delphi
没有接触过,自称对Informix比较熟悉,没有从事过SQL Server数据库系统的应用程序开
发。自称对三层系统有很深的了解(UNIX下),对COM/COM+知之甚少。对我们的系统所解决
的业务领域有初步了解。
下面,对我们现在的系统构架和实现方法中几个值得探讨的问题简单描述如下:
1、放弃了Delphi原有的MTS/MIDAS的数据封装和传输技术,只是利用了MTS的事务管理功能
通过数据库的表的字段定义不同的结构,自己进行交易控制、数据传输和出错控制。每一个
对单表(注意:是单表)的增、删、改、查作为一个MTS的事务,客户端传输过来的数据在中
间层被分解,然后组织SQL语句对数据库进行操作。
2、中间层服务程序对数据库的访问采用动态链接库封装,通过传递参数到动态链接库中,
然后由动态链接库进行数据库更新和访问。对数据库的更新进行显式的加锁,对于这样导
致的数据库死锁问题从业务面去分析解决(分析数据库中的近200张表,指定表的访问顺序)。
3、采用OLTP思想,实行短交易,也就是说,在进行多笔明细数据插入的时候,每插入一条
数据作为一个MTS事务,而多笔交易没有形成事务嵌套,这样的后果不用说也知道。对于插
入不成功的数据,在通过其他方法清除无用数据(引用总监原话)。至于清除无用数据失败
就不知道怎么解决了。中间还牵涉到数据的及时性问题。
4、我们创建了基于单表维护的自动生成工具,所有对后台数据库的单表维护中间层服务程
序都可以通过自动生成产生,但对于主从表的维护程序全部得通过程序员自己编写。
5、我们没有使用数据感应控件(数据感应控件有问题--引用),自己编写了Edit,ComboBox
和DBGrid控件,修改了Form单元,来实现数据感应控件所提供的功能。
以上的系统架构思想和程序实现思想是我们现在的做法,请大家指教。
是Borland Delphi 5(注意:是Delphi),我们的技术总监定义了一种三层系统的架构,简
我公司现在正在进行一个大型MIS系统的开发,平台为Windows+SQL Server 7,开发工具
是Borland Delphi 5(注意:是Delphi),我们的技术总监定义了一种三层系统的架构。
备注:该技术总监多年以来一直从事UNIX平台下的应用开发,对C语言比较熟悉,对Delphi
没有接触过,自称对Informix比较熟悉,没有从事过SQL Server数据库系统的应用程序开
发。自称对三层系统有很深的了解(UNIX下),对COM/COM+知之甚少。对我们的系统所解决
的业务领域有初步了解。
下面,对我们现在的系统构架和实现方法中几个值得探讨的问题简单描述如下:
1、放弃了Delphi原有的MTS/MIDAS的数据封装和传输技术,只是利用了MTS的事务管理功能
通过数据库的表的字段定义不同的结构,自己进行交易控制、数据传输和出错控制。每一个
对单表(注意:是单表)的增、删、改、查作为一个MTS的事务,客户端传输过来的数据在中
间层被分解,然后组织SQL语句对数据库进行操作。
2、中间层服务程序对数据库的访问采用动态链接库封装,通过传递参数到动态链接库中,
然后由动态链接库进行数据库更新和访问。对数据库的更新进行显式的加锁,对于这样导
致的数据库死锁问题从业务面去分析解决(分析数据库中的近200张表,指定表的访问顺序)。
3、采用OLTP思想,实行短交易,也就是说,在进行多笔明细数据插入的时候,每插入一条
数据作为一个MTS事务,而多笔交易没有形成事务嵌套,这样的后果不用说也知道。对于插
入不成功的数据,在通过其他方法清除无用数据(引用总监原话)。至于清除无用数据失败
就不知道怎么解决了。中间还牵涉到数据的及时性问题。
4、我们创建了基于单表维护的自动生成工具,所有对后台数据库的单表维护中间层服务程
序都可以通过自动生成产生,但对于主从表的维护程序全部得通过程序员自己编写。
5、我们没有使用数据感应控件(数据感应控件有问题--引用),自己编写了Edit,ComboBox
和DBGrid控件,修改了Form单元,来实现数据感应控件所提供的功能。
以上的系统架构思想和程序实现思想是我们现在的做法,请大家指教。