D
duke2000
Unregistered / Unconfirmed
GUEST, unregistred user!
1、三层结构中,应用服务器中数据控件同时访问冲突问题……
在应用服务器中定义了一个接口,其中使用数据控件ADOQuery1:
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from xxxx';
ADOQuery1.Open;
当有多个客户端同时调用该接口,就会发生ADOQuery1的访问冲突问题,如:不能在打开的数据集执行SQL.Text附值等。
建立远程模块选择的是:
Instancing:Multiple Instance;
Threading Model:Apartment;
为什么没有体现多线程呢?
需要特别设置吗?如何设置??
使用DCOM。
2、三层结构中,从表在客户端体现的是主表的一个DataSetField型的字段,提交时只提交主表,从表数据会自动带入主表跟着提交。在服务端需要先处理从表数据后再写入库中,但如何访问作为主表的一个字段的从表中的数据呢?我想在与主表相连的DataSetPrvider的相关事件中处理,只能在从表数据集的Before Post事件中处理吗?
3、在三层中(DataSnap)系统中,如何用事务来管理提交?
在两层中,我们可以用这个,
try
Data.ADOConnection1.begin
Trans;
Data.ADOclient.UpdateBatch(arcurrent);
Data.ADOconnection1.CommitTrans;
Application.MessageBox('数据已正确存盘!','存盘结果',MB_OK+MB_IconInformation+MB_SystemModal);
except
Data.ADOConnection1.RollbackTrans;
Application.MessageBox('提交存档失败!!','存档结果',MB_OK+MB_Iconstop+MB_SystemModal);
raise;
end;
在三层,我们用clientDataSet来连接数据服务器,请问我们如何做事务管理 ?
在应用服务器中定义了一个接口,其中使用数据控件ADOQuery1:
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from xxxx';
ADOQuery1.Open;
当有多个客户端同时调用该接口,就会发生ADOQuery1的访问冲突问题,如:不能在打开的数据集执行SQL.Text附值等。
建立远程模块选择的是:
Instancing:Multiple Instance;
Threading Model:Apartment;
为什么没有体现多线程呢?
需要特别设置吗?如何设置??
使用DCOM。
2、三层结构中,从表在客户端体现的是主表的一个DataSetField型的字段,提交时只提交主表,从表数据会自动带入主表跟着提交。在服务端需要先处理从表数据后再写入库中,但如何访问作为主表的一个字段的从表中的数据呢?我想在与主表相连的DataSetPrvider的相关事件中处理,只能在从表数据集的Before Post事件中处理吗?
3、在三层中(DataSnap)系统中,如何用事务来管理提交?
在两层中,我们可以用这个,
try
Data.ADOConnection1.begin
Trans;
Data.ADOclient.UpdateBatch(arcurrent);
Data.ADOconnection1.CommitTrans;
Application.MessageBox('数据已正确存盘!','存盘结果',MB_OK+MB_IconInformation+MB_SystemModal);
except
Data.ADOConnection1.RollbackTrans;
Application.MessageBox('提交存档失败!!','存档结果',MB_OK+MB_Iconstop+MB_SystemModal);
raise;
end;
在三层,我们用clientDataSet来连接数据服务器,请问我们如何做事务管理 ?