-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDataBaseHelper.pas
More file actions
165 lines (134 loc) · 5.36 KB
/
Copy pathDataBaseHelper.pas
File metadata and controls
165 lines (134 loc) · 5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
unit DataBaseHelper;
interface
uses
System.SysUtils, System.Generics.Collections, Data.Win.ADODB,
QueryHelper, Zlecenia, Zlecenie, ZlecenieEtap, Stanowiska, Stanowisko;
type
TDataBaseHelper = class
private
procedure PrzygotujBazeDoZapisaniaHarmonogramowanychEtapow;
procedure CofnijPrzygotowanieBazyDoZapisaniaHarmonogramowanychEtapow;
function CzyKolumnaIstniejeWTabeli(nazwaKolumny, nazwaTabeli : String) : Boolean;
procedure DodajKolumneDoTabeli(nazwaKolumny, nazwaTabeli, typDanych : String);
procedure UsunKolumneZTabeli(nazwaKolumny, nazwaTabeli : String);
{ Private declarations }
public
{ Public declarations }
constructor Create(connection : TADOConnection);
// destructor Free;
function WyciagnijZleceniaDoHarmonogramowania : TZlecenia;
function WyciagnijStanowiskaDoHarmonogramowania : TStanowiska;
procedure ZapiszEtap(etap : TZlecenieEtap);
end;
var
Query1 : TQueryHelper;
Query2 : TQueryHelper;
implementation
constructor TDataBaseHelper.Create(connection : TADOConnection);
begin
Query1 := TQueryHelper.HelperWithConnection(connection);
Query2 := TQueryHelper.HelperWithConnection(connection);
PrzygotujBazeDoZapisaniaHarmonogramowanychEtapow;
end;
// destructor TDataBaseHelper.Free;
// begin
// Query1.Free;
// Query2.Free;
// end;
procedure TDataBaseHelper.PrzygotujBazeDoZapisaniaHarmonogramowanychEtapow;
begin
if not (CzyKolumnaIstniejeWTabeli('DATA_ROZPOCZECIA', 'ZLEC_TECHNOLOGIE_ETAPY')) then
DodajKolumneDoTabeli('DATA_ROZPOCZECIA', 'ZLEC_TECHNOLOGIE_ETAPY', 'DATETIME');
if not (CzyKolumnaIstniejeWTabeli('DATA_ZAKONCZENIA', 'ZLEC_TECHNOLOGIE_ETAPY')) then
DodajKolumneDoTabeli('DATA_ZAKONCZENIA', 'ZLEC_TECHNOLOGIE_ETAPY', 'DATETIME');
if not (CzyKolumnaIstniejeWTabeli('ID_STANOWISKA_PRZYDZIELENIE', 'ZLEC_TECHNOLOGIE_ETAPY')) then
DodajKolumneDoTabeli('ID_STANOWISKA_PRZYDZIELENIE', 'ZLEC_TECHNOLOGIE_ETAPY', 'INT');
end;
procedure TDataBaseHelper.CofnijPrzygotowanieBazyDoZapisaniaHarmonogramowanychEtapow;
begin
end;
function TDataBaseHelper.CzyKolumnaIstniejeWTabeli(nazwaKolumny, nazwaTabeli : String) : Boolean;
begin
Query1.fetchQuery('SELECT * FROM '+ nazwaTabeli);
if Query1.Query.FieldList.Find(nazwaKolumny) = nil
then Result := False
else Result := True;
end;
procedure TDataBaseHelper.DodajKolumneDoTabeli(nazwaKolumny, nazwaTabeli, typDanych : String);
begin
Query1.executeQuery('ALTER TABLE '+ nazwaTabeli + ' '+
'ADD '+ nazwaKolumny + ' ' + typDanych);
end;
procedure TDataBaseHelper.UsunKolumneZTabeli(nazwaKolumny, nazwaTabeli : String);
begin
Query1.executeQuery('ALTER TABLE '+ nazwaTabeli + ' '+
'DROP COLUMN '+ nazwaKolumny);
end;
function TDataBaseHelper.WyciagnijZleceniaDoHarmonogramowania : TZlecenia;
var
zlecenia : TZlecenia;
zlecenie : TZlecenie;
etapZlecenia : TZlecenieEtap;
ID_ZLEC_TECHNOLOGIE : Integer;
poprzedniEtapZlecenia : TZlecenieEtap;
begin
zlecenia := TZlecenia.Create(True);
Query1.fetchQuery('SELECT * '+
'FROM zlecenia '+
'WHERE status = ''wystawione'' '+
// 'AND ID_ZLEC_TECHNOLOGIE = 53 ' +
'ORDER BY rok asc, miesiac asc');
while not Query1.Query.Eof do
begin
zlecenie := TZlecenie.Create(True);
zlecenie.daneZlecenia.UstawDlaQueryZeZlecenia(Query1.Query);
zlecenia.Add(zlecenie);
poprzedniEtapZlecenia := nil;
ID_ZLEC_TECHNOLOGIE := Query1.Query.FieldByName('ID_ZLEC_TECHNOLOGIE').AsInteger;
Query2.fetchQuery('SELECT * '+
'FROM zlec_technologie_etapy '+
'WHERE id_zlec_technologie = '+ IntToStr(ID_ZLEC_TECHNOLOGIE) + ' ' +
'ORDER BY nr_etapu asc');
while not Query2.Query.Eof do
begin
etapZlecenia := TZlecenieEtap.Create;
etapZlecenia.UstawDlaQueryZeZlecTechnologieEtapy(Query2.Query);
if not (poprzedniEtapZlecenia = nil) then
begin
etapZlecenia.poprzedniEtap := poprzedniEtapZlecenia;
poprzedniEtapZlecenia.nastepnyEtap := etapZlecenia;
end;
zlecenie.Add(etapZlecenia);
poprzedniEtapZlecenia := etapZlecenia;
Query2.Query.Next;
end;
Query1.Query.Next;
end;
Result := zlecenia;
end;
function TDataBaseHelper.WyciagnijStanowiskaDoHarmonogramowania : TStanowiska;
var
stanowiska : TStanowiska;
stanowisko : TStanowisko;
ID_RODZAJE_STANOWISK : Integer;
begin
stanowiska := TStanowiska.Create(True);
Query1.fetchQuery('SELECT * FROM stanowiska');
while not Query1.Query.Eof do
begin
stanowisko := TStanowisko.Create;
stanowiska.Add(stanowisko);
ID_RODZAJE_STANOWISK := Query1.Query.FieldByName('ID_RODZAJE_STANOWISK').AsInteger;
Query2.fetchQuery('SELECT * FROM rodzaje_stanowisk '+
'WHERE id_rodzaje_stanowisk = '+ IntToStr(ID_RODZAJE_STANOWISK));
stanowisko.UstawDlaQueryZeStanowiska(Query1.Query);
stanowisko.UstawDlaQueryZRodzajeStanowisk(Query2.Query);
Query1.Query.Next;
end;
Result := stanowiska;
end;
procedure TDataBaseHelper.ZapiszEtap(etap : TZlecenieEtap);
begin
etap.ZapiszSie(Query1.Query);
end;
end.