B
barry1999
Unregistered / Unconfirmed
GUEST, unregistred user!
小弟目前在开发一个小的销售系统时,有一些疑问
1.这个系统主要有进货,售货,退货,盘点,报表,查询几个功能模块,
我开始准备用DELPHI的MIDAS做一个应用服务器,
做一个Remote Data Module GeneralDataBase,放入TADOConneticon 连接数据库。
把上述几个功能模快封装到各自的Remote Data Module,
里面的TADOQUERY的Connection设为GeneralDataBase。
客户端用DcomConnection,ClientDataset连接到各自的Remote Data Module。
我有一点不明白:按照上面的方案,如果有多个客户端连接到应用服务器时,
会不会互相影响呢?李维的书中提到用TdataBase时,设一个Tsession即可,
但我查了一下TADOCONNECTION的属性,好象没有这个功能。
我因该如何改正上面的设计方案呢。
有更好的设计方案吗?
2.又看了李维的ADO/MTS/COM+里的设计方案,各个表放在一个Remote data module,
然后建立查询,更新两个协调模快。但是里面的事务又如何管理呢?例如:
mtsCoor.库存表.update( 库存,1);
mtsCoor.进货表.insert(code,name,source…….);
虽然update和insert里都调用了SetComplete,但是他如何保证数据的完整性呢,
如果上面两步有一个错了,就应该都不成功。自己还要在写代码吗?
还是mts自动帮我管理,到了mtsCoor.进货表.insert(code,name,source…….);
这一步SETCOMPLETE后就提交给数据库了?mts是如何把上面两步放在一个事务呢?
事务什么时候结束的呢?
如果恰好此时另一个客户端调用了销售模快
mtsCoor.库存表.update( 库存,-1);
mtsCoor.销售表.insert(code,name,source…….);
那事务会冲突吗?
3.一个傻问题,在李维的书看到线程和实例时,越看越糊涂,
请各位看过他的书的”大虾”指点迷津, 里面的STA和多线程还有单实例和多实例究竟
是怎么一回事?
1.这个系统主要有进货,售货,退货,盘点,报表,查询几个功能模块,
我开始准备用DELPHI的MIDAS做一个应用服务器,
做一个Remote Data Module GeneralDataBase,放入TADOConneticon 连接数据库。
把上述几个功能模快封装到各自的Remote Data Module,
里面的TADOQUERY的Connection设为GeneralDataBase。
客户端用DcomConnection,ClientDataset连接到各自的Remote Data Module。
我有一点不明白:按照上面的方案,如果有多个客户端连接到应用服务器时,
会不会互相影响呢?李维的书中提到用TdataBase时,设一个Tsession即可,
但我查了一下TADOCONNECTION的属性,好象没有这个功能。
我因该如何改正上面的设计方案呢。
有更好的设计方案吗?
2.又看了李维的ADO/MTS/COM+里的设计方案,各个表放在一个Remote data module,
然后建立查询,更新两个协调模快。但是里面的事务又如何管理呢?例如:
mtsCoor.库存表.update( 库存,1);
mtsCoor.进货表.insert(code,name,source…….);
虽然update和insert里都调用了SetComplete,但是他如何保证数据的完整性呢,
如果上面两步有一个错了,就应该都不成功。自己还要在写代码吗?
还是mts自动帮我管理,到了mtsCoor.进货表.insert(code,name,source…….);
这一步SETCOMPLETE后就提交给数据库了?mts是如何把上面两步放在一个事务呢?
事务什么时候结束的呢?
如果恰好此时另一个客户端调用了销售模快
mtsCoor.库存表.update( 库存,-1);
mtsCoor.销售表.insert(code,name,source…….);
那事务会冲突吗?
3.一个傻问题,在李维的书看到线程和实例时,越看越糊涂,
请各位看过他的书的”大虾”指点迷津, 里面的STA和多线程还有单实例和多实例究竟
是怎么一回事?