在标准风格主窗体上放一个InforBroker1,引用信息层MBYSJJ,
在信息层MBYSJJ创建的时候,用线程在后台打开信息层上的所有数据集。
为什么一运行,整个程序就死掉了?代码如下:
unit MBYSJJ;
interface
uses
Business.System, Business.Model, Business.Data;
type
TMBYInfoThread = class(TThread)
private
FMBYInfo: TInfo;
public
property MBYInfo: TInfo read FMBYInfo write FMBYInfo;
procedure Execute; override;
end;
type
TMBYSJJ = class(TInfo)
DataSetAXTYH: TSQLDataSet;
DataSetABTZBJLDBRJSYYDM: TSQLDataSet;
DataSetABYQBHSYYDM: TSQLDataSet;
DataSetATBDW: TSQLDataSet;
DataSetAJSJZYYDM: TSQLDataSet;
DataSetAJCJSJZYYDM: TSQLDataSet;
DataSetAJCQBHSYYDM: TSQLDataSet;
DataSetAQZCS: TSQLDataSet;
DataSetAQBHSYYDM: TSQLDataSet;
DataSetASXZM: TSQLDataSet;
procedure InfoCreate(Sender: TObject);
private
{private declarations}
public
{public declarations}
end;
implementation
procedure TMBYInfoThread.Execute;
var
i: Integer;
sDMPath: String;
begin
FreeOnTerminate := True;
sDMPath := JSCommon.ModulePath + '350200000000' + 'xml\';
with FMBYInfo.DataSets do
begin
SysUtils.CreateDir(sDMPath);
for i := 1 to Count - 1 do
begin
Items.Open;
Items.SaveToFile(sDMPath + Items.ID + '.xml', TDataPacketFormat.dfXML);
end;
end;
end;
procedure TMBYSJJ.InfoCreate(Sender: TObject);
var
t: TMBYInfoThread;
begin
t := TMBYInfoThread.Create(False);
t.MBYInfo := Self;
t.Resume;
end;
end. |