这是这个PAS全部的代码了,这是应用层MTS模块,:
unit StudentResultTypeUpdate_U_WDQ;
interface
uses
ActiveX, MtsObj, Mtx, ComObj, StudentResultTypeUpdate_P_WDQ_TLB, StdVcl,
StudentResultTypeUpdateDM_U_WDQ, Forms, classes, Sysutils;
type
TStudentResultTypeUpdate = class(TMtsAutoObject, IStudentResultTypeUpdate)
private
vStudentResultTypeUpdateDM : TStudentResultTypeUpdateDM;
protected
function SetStudentResultType(const Delta: WideString): Integer;
safecall;
{ Protected declarations }
public
procedure Initialize;
override;
destructor Destroy;
override;
end;
implementation
uses ComServ;
procedure TStudentResultTypeUpdate.Initialize;//初始化数据模块
begin
inherited;
vStudentResultTypeUpdateDM := TStudentResultTypeUpdateDM.Create(Forms.Application);
end;
destructor TStudentResultTypeUpdate.Destroy;
begin
inherited;
vStudentResultTypeUpdateDM.Free ;//vStudentResultTypeUpdateDM为数据模块TDataMoudle名称
end;
//跟踪到这出错,出错内容:根事务要提交,但事务已经被终止!
//不知如何解决?
function TStudentResultTypeUpdate.SetStudentResultType(
const Delta: WideString): Integer;
var
ErrorCount : integer;
begin
try
vStudentResultTypeUpdateDM.xmlbStudentResultType.Connected := true;//xmlbStudentResultType : TXMLBroker
vStudentResultTypeUpdateDM.xmlbStudentResultType.ApplyXMLUpdates(Delta,ErrorCount);//XMLBroker执行数据提交方法
Result := ErrorCount;//返回出错数目
vStudentResultTypeUpdateDM.xmlbStudentResultType.Connected := false;//关闭和数据库的连接
SetComplete;//不知道是不是应该在此提交事务?
except
SetAbort;
end;
end;
initialization
TAutoObjectFactory.Create(ComServer, TStudentResultTypeUpdate, Class_StudentResultTypeUpdate,
ciMultiInstance, tmApartment);
end.
在这层还有一个数据模块,代码如下:
unit StudentResultTypeUpdateDM_U_WDQ;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
XMLBrokr, Db, DBClient, MConnect;
type
TStudentResultTypeUpdateDM = class(TDataModule)
dcomcStudentResultType: TDCOMConnection;//用于连接底层MTS数据模块
xmlbStudentResultType: TXMLBroker;//连接至底层MTS数据模块的数据提供控件TDataSetProvider
private
{ Private declarations }
public
{ Public declarations }
end;
var
StudentResultTypeUpdateDM: TStudentResultTypeUpdateDM;
implementation
{$R *.DFM}
end.
底层的MTS数据模块完全只是进行数据连接,没写任何代码!