TLoadSaveThread =
class(TThread)
private
FPanicLevel: integer;
blStop, FblStop: Boolean;
FslBenutzer: TStringList;
FclAlleVorgaenge: TComponentList;
FclBestellDetail: TComponentList;
FclLebensStationen: TComponentList;
FclProjekte: TComponentList;
FclKontakte: TComponentList;
FclWiederVorlage: TComponentList;
FclTicket: TComponentList;
FclMail: TComponentList;
FclBestellung: TComponentList;
FclArtikel: TComponentList;
FclSave_Inbox: TComponentList;
FclSave_Thread: TComponentList;
FclSave_Outbox: TComponentList;
FclDelete_Inbox: TComponentList;
FclDelete_Thread: TComponentList;
FclDelete_Outbox: TComponentList;
FNewDataSet: TLoadSaveItem;
FProgressText:
string;
procedure SyncSaveAndDelete;
procedure SyncNewDataset;
procedure SyncFinished;
procedure SyncProjekte;
procedure SyncKontakte;
procedure SyncWiederVorlage;
procedure SyncTickets;
procedure SyncMails;
procedure SyncBestellung;
procedure SyncBestellDetails;
procedure SyncVorgang;
procedure SyncArtikel;
procedure SyncStop;
procedure SyncBenutzer;
procedure SyncAblaufschritte;
procedure SyncProgress;
public
clBestellDetail: TComponentList;
clProjekte: TComponentList;
clKontakte: TComponentList;
clWiederVorlage: TComponentList;
clTicket: TComponentList;
clMail: TComponentList;
clBestellung: TComponentList;
clArtikel: TComponentList;
clAlleVorgaenge: TComponentList;
blTerminated: Boolean;
slBenutzer: TStringList;
ConnectionString:
string;
OnChange: TNotifyEvent;
OnProgress: TNotifyEvent;
ProgressText:
string;
PanicLevel: integer;
ToDo: integer;
procedure Execute;
override;
procedure Stop;
procedure Delete(_LoadSaveItem: TLoadSaveItem);
procedure Save(_LoadSaveItem: TLoadSaveItem);
procedure SyncAlles;
constructor Create(_Suspended: Boolean);
reintroduce;
destructor Destroy;
override;
end;
constructor TLoadSaveThread.Create(_Suspended: Boolean);
begin
inherited;
try
OnChange :=
NIL;
FblStop := False;
FclSave_Inbox := TComponentList.Create(False);
FclSave_Thread := TComponentList.Create(False);
FclSave_Outbox := TComponentList.Create(False);
FclDelete_Inbox := TComponentList.Create(False);
FclDelete_Thread := TComponentList.Create(False);
FclDelete_Outbox := TComponentList.Create(False);
FclProjekte := TComponentList.Create(False);
clProjekte := TComponentList.Create(False);
FclKontakte := TComponentList.Create(False);
clKontakte := TComponentList.Create(False);
FclWiederVorlage := TComponentList.Create(False);
clWiederVorlage := TComponentList.Create(False);
FclTicket := TComponentList.Create(False);
clTicket := TComponentList.Create(False);
FclMail := TComponentList.Create(False);
clMail := TComponentList.Create(False);
FclBestellung := TComponentList.Create(False);
clBestellung := TComponentList.Create(False);
FclBestellDetail := TComponentList.Create(False);
clBestellDetail := TComponentList.Create(False);
FclArtikel := TComponentList.Create(False);
clArtikel := TComponentList.Create(False);
clAlleVorgaenge := TComponentList.Create(False);
slBenutzer := TStringList.Create;
ToDo := 0;
blTerminated := False;
except end;
end;
procedure TLoadSaveThread.Execute;
var
db: TADOConnection;
q: TADOQuery;
i: integer;
...
begin
q :=
NIL;
db :=
NIL;
blBenutzerGeladen := False;
blVorlagenGeladen := False;
blMailsGeladen := False;
blArtikelGeladen := False;
try
FProgressText := '
Starten ...';
Synchronize(SyncProgress);
CoInitialize(
NIL);
FslBenutzer := TStringList.Create;
FclAlleVorgaenge := TComponentList.Create(True);
FclLebensStationen := TComponentList.Create(True);
FProgressText := '
Verbinde Datenbank ...';
Synchronize(SyncProgress);
db := TADOConnection.Create(
NIL);
db.LoginPrompt := False;
db.ConnectionString := Self.ConnectionString;
db.Connected := True;
FProgressText := '
Erstelle Abfrage ...';
Synchronize(SyncProgress);
q := TADOQuery.Create(
NIL);
q.Connection :=
db;