Latvijas
Universitāte
Fizikas un matemātikas fakultāte,
Datorzinātnes nodaļa
Tēmas
nosaukums:
Informatīvā sistēma - Klubs
Kursa
darbs
Izstrādāja:
__________
E.Grosvalds
DatZ - 96010
1.kurss, Dz-2
Pieņēma:
________
1998
Anotācija
Anotācija
Kursa projekta mērķis ir nodrošināt kluba
pasākumu, dalībnieku uzskaiti.
Aplikācija nodrošina šādas galvenās
funkcijas:
·
kluba
pasākumu, personu pievienošanu, dzēšanu, redigēšanu, apskati, meklēšanu,
·
pasākuma
dalībnieku pievienošanu, izmešanu kluba pasākumiem,
·
klasifikatoru
– Telpas, Tēmas, Tiesības apstrādi,
·
personu
piedalīšanos pasākumos arhīvu,
·
pasākumu
tiesību un personu tiesību uzskaiti,
·
personu
tiesību piedalīšanos pasākumos kontroli.
Anotation
The aim of this course project is provide
follow-up of club` events and participators.
Apliccation provide such main functions:
·
events
of club, participators adding, deleting, editing, viewing, seraching.
·
adding,
deleting participators from event of club,
·
classificators
– rooms, topics, rights proccesing,
·
archive
of person participation in club events,
·
manage
rights of events, rights of persons,
·
checking
person`s rights in participating in events.
Анотация
Цель курсавовой работы – обеспечить учот мероприятий и участников клуба.
В апликации реализованы следующие
главные функции:
·
вод, удаление,
модификация, просмотр и поиск мероприятий клуба,
·
вод и удаление
участников конкретного мероприятия,
·
обработка
классификаторов,
·
архивация данных
об участии
·
учот прав
участников клуба и мероприятий,
·
контроль прав
участников конкретного мероприятия.
Satura rādītājs
1.1.1 Ievads............................................................................................................ 8
2 Uzdevuma
neformāls apraksts................................................................................. 9
3 Tehnikas
un programmatūras prasības................................................................... 10
3.1 Tehnikas izvēle................................................................................................ 10
3.2 Papildus programmatūra................................................................................. 10
4 Lietotāja
instrukcija............................................................................................... 11
4.1 Programmas uzstādīšana................................................................................. 11
4.2 Aplikāciju izvēlnēs un logos lietoto pogu apraksts......................................... 11
5 Kluba
Informatīvā sistēma.................................................................................... 12
5.1 Personas.......................................................................................................... 15
5.2 Telpas (klasifikators)....................................................................................... 17
5.3 Tēmas (klasifikators)....................................................................................... 18
5.4 Tiesības (klasifikators)..................................................................................... 19
5.5 Pasākumu meklēšana....................................................................................... 20
5.6 Personu meklēšana.......................................................................................... 21
6 Programmas
apraksts............................................................................................. 22
6.1 Datu plūsmu modelis...................................................................................... 22
6.2 ER modelis...................................................................................................... 23
6.3 Datu modeļa apraksts...................................................................................... 24
6.4 Datu moduļa pieprasījumi............................................................................... 25
6.5 Datu moduļa funkciju apraksts....................................................................... 26
6.6 Pasākumi......................................................................................................... 27
6.7 Personas.......................................................................................................... 28
6.8 Pasākumu meklēšana....................................................................................... 29
6.9 Personu meklēšana.......................................................................................... 30
7 Moduļu
kodi.......................................................................................................... 33
7.1 Modulis – “Datu modulis”.............................................................................. 33
7.2 Pasākumi......................................................................................................... 35
7.3 Personas.......................................................................................................... 38
7.4 Pasākumu meklēšana....................................................................................... 41
7.5 Personu meklēšana.......................................................................................... 43
7.6 Trigeris “TRG_DALIBNIEKI_IU”............................................................... 44
8 Tabulu
struktūras................................................................................................... 45
8.1 Pasākumi......................................................................................................... 45
8.2 Personas.......................................................................................................... 45
8.3 Dalībnieki........................................................................................................ 46
8.4 Pasākumu tiesības........................................................................................... 46
8.5 Personas tiesības.............................................................................................. 47
8.6 Personas tiesības.............................................................................................. 47
8.7 Telpas.............................................................................................................. 48
8.8 Tēmas.............................................................................................................. 48
9 Datu
bāzes objektu skripti..................................................................................... 49
9.1 Tabulu ģenerācijas skripts “KLUBS.TAB”.................................................... 49
9.2 Primāro, ārējo atslēgu ģenerācijas skripts “KLUBS.CON”............................ 51
9.3 Indeksu ģenerācijas
skripts “KLUBS.IND”.................................................. 54
Attēlu saraksts
Attēls 1 Pieslēgšānās
Oracle datu bāzei....................................................................... 12
Attēls
2 Kluba informatīvā sistēma.............................................................................. 13
Attēls
3 Kluba informatīvā sistēma(lapiņa tiesības)..................................................... 14
Attēls
4 Personas(lapiņa - Tiesības).............................................................................. 15
Attēls
5 Personas(lapiņa - Apmeklētie pasākumi)........................................................ 16
Attēls
6. Telpas............................................................................................................. 17
Attēls
7 Tēmas.............................................................................................................. 18
Attēls
8 Tiesības........................................................................................................... 19
Attēls
9 Pasākumu meklēšana...................................................................................... 20
Attēls
10 Personu meklēšana........................................................................................ 21
Attēls
11 ER modelis................................................................................................... 23
Attēls
12 Aplikācijas Datu modelis meklēšana............................................................ 24
Attēls
13 Tabulas “Pasākumi” struktūra....................................................................... 45
Attēls
14 Tabulas “Personas” struktūra........................................................................ 45
Attēls
15 Tabulas “Dalībnieki” struktūra..................................................................... 46
Attēls
16 Tabulas “Pasākumu tiesības” struktūra......................................................... 46
Attēls
17 Tabulas “Personas tiesības” struktūra........................................................... 47
Attēls
18 Tabulas “Tiesības” struktūra......................................................................... 47
Attēls
19 Tabulas “Telpas” struktūra............................................................................ 48
Attēls
20 Tabulas “Tēmas” struktūra............................................................................ 48
1.1.1 Ievads
Aplikācija
korekti strādā un uzņēmums veiksmīgi strāda ar aplikāciju.
2
Uzdevuma neformāls apraksts
Kursa darbā tiek izstrādāta un apskatīta
kluba pasakumu apstrādes programma.
Aplikācija nodrošina šādas galvenās
funkcijas:
·
kluba
pasākumu, personu pievienošanu, dzēšanu, redigēšanu, apskati, meklēšanu,
·
pasākuma
dalībnieku pievienošanu, izmešanu kluba pasākumiem,
·
klasifikatoru
– Telpas, Tēmas, Tiesības apstrādi,
·
personu
piedalīšanos pasākumos arhīvu,
·
pasākumu
tiesību un personu tiesību uzskaiti,
·
personu
tiesību piedalīšanos pasākumos kontroli.
Izsaucot aplikāciju, tiek
parādīta logs, kurā var reģistrēt, dzēst pasākumus. Katram pasākumam var
ierakstīt nosaukumu, tēmu, kāda tiks
apskatīta pasākumā, datumu, kad pasākums notiek, laiku, cikos pasākums sākās, pasākuma
ilgumu, cik ilgi norisināsies pasākums, norādīt kādā telpā notiks pasākums.
Kad ir izveidots pasākums,
var pasākumam pierakstīt dalībniekus. To izvēlās no brīvo personu saraksta.
Ja pasākums ir domāts
noteiktai laužu grupai, un nav vēlams pierakastīt svešas personas, tad var
uzlikt pasākumam tiesību. Un šī tiesība ir jāiedod tām personām, kuras drīkst
apmeklēt pasākumu. Tad šīs personas var tikt pievienotas pasākumam. Programmas skatās,
vai pasākuma tiesība ir personai, ja personai nav tādas tiesības, tad lietotājs
nevar pievienot pasākumam šo personu, un izlec paziņojuma logs, ka dotai
personai nav tiesības piedalīties pasākumā.
Ja lietotāju interesē, kādos
pasākumos persona ir pierakstīta, tad to var redzēt Personu formā, lapiņā
“Apmeklētie pasākumi”.
Ja lietotāju interesē, kādi
pasākumi ir notikuši pēc izvēlētās tēmas, vai dotajā telpā, tad to var atrast
formā “Pasākumu meklēšana”. Meklēšanas formā ir vēl daži parametri pēc kuriem
var tikt sameklēti pasākumi – Laiks, Ilgums, Datums, Pasākuma nosaukums. Visi
atrastie pasākumi tiek parādīti sarakstā “Pasākumi”, ja divreiz noklikšķina uz
atrasto pasākumu, tad sākotnējā formā – “Pasākumi”, tiek atspoguļots izvēlētais
pasākums.
Image 1
|
|
Lai uzzinātu
informāciju par aplikāciju, tad jaizvēlās Izvēlne – “Par programmu” “Pasākumu”
formā.
3
Tehnikas
un programmatūras prasības
3.1 Tehnikas izvēle
Minimālās prasības datoram ir PC486DX, 12Mb RAM, 5Mb vietas uz HDD,
pele.
Ieteicamās prasības datoram ir PC Pentium, 16 Mb RAM, 5 Mb vietas uz
HDD, drukas iekārta , pele.
3.2 Papildus programmatūra
Operētājsistēma Windows 95 vai Windows NT
Oracle Client 7.2
Borland Database Engine (BDE)
Latviskošanas programma.
Fonti - RimTimes, RimHelvetica. MS Sans Serif.
4
Lietotāja instrukcija
Šī lietotāja instrukcija
paredzēta, lai atvieglotu lietotāja darbu ar aplikāciju un palīdzētu
risināt iespējamās problēmas.
4.1 Programmas uzstādīšana.
-
jābūt
uzinstalētam Oracle Client 7.2 un izveidots datu bāzes “alias”
-
jāinstalē
aplikācijas “Klubs” instalācijas programma - setup.exe,
Programma tiks instalēta - C:\ROGRAM
FILES\SD60010\KLUBS\Klubs.exe
4.2 Aplikāciju izvēlnēs un logos lietoto pogu apraksts
Spiedpogas atrodas īpašā izvēlnē, kurā
novietotas visbiežāk lietojamo darbību atbilstošās spiedpogas. Tās var
aktivizēt ar klaviatūras un peles palīdzību, noklikšķinot uz nepieciešamās
ikonas.
IMAGE2
Pievienot jaunu ierakstu.
IMAGE3
Izdzēst ierakstu.
IMAGE4
Beigt darbu.
IMAGE5
Apstiprināt izmaiņas.
IMAGE6
Atcelt veiktās darbības.
|
|
5
Kluba Informatīvā sistēma
IMAGE7
|
|
Palaižot Klubs.exe parādās
Pieslēgšanās Oracle datu bāzei:
IMAGE8
|
|
Ja parametri nav
pareizi ievadīti, tad tiek izvadīts kļūdas paziņojums
Citādi tiek
palaista aplikācija.
Šī ekrāna forma paredzēta kluba pasākumu
uzskaitei.. Formā “Informatīvā
sistēma Klubs”
obligāti aizpildāmi lauki: datums No,
datums Līdz, Laiks, Telpa, Ilgums Laiks, Nosaukums
IMAGE9
|
|
Apakšējā datu
ievades logā ir divas lapiņas:
-
Dalībnieki,
satur informāciju par pasākuma dalībniekiem uz tekošo pasākumu.
No personu saraksta ar pogas <= palīdzību Jūs
varat pasākumam pievienot personu
No dalībnieku saraksta ar pogas => palīdzību
Jūs varat izmest no pasākuma personu
Ja personai nav neviena no pasākumam piešķirtām
tiesībām, tad persona netiek pierakstīta pasākumā, tiek izvadīts paziņojuma
logs.
IMAGE10
|
|
IMAGE11
|
|
-
Tiesības,
satur informāciju par tiesībām uz tekošo pasākumu. Ja Jūs gribat pasākumam
pievienot personu kurai nav tiesības uz minēto pasākumu, tad izlec, kļūdas
paziņojums un persona netiek pierakstīta uz pasākumu. Tas ir nepieciešams, lai
uz pasākumu nepierakstītu nepiederošas personas.
No tiesību saraksta ar pogas
<= palīdzību Jūs varat pasākumam pievienot jaunu tiesību
No tiesību saraksta ar pogas
=> palīdzību Jūs varat pasākumam izmest tiesību no pasākuma.
No šīs ekrāna
formas var izsaukt:
Menu
|
Moduļi –
Personas
|
Personu
reģistrācijas modeli “Personas”
|
|
Moduļi –
Klasifikatori
|
Klasifikatorus
|
|
Moduļi –
Klasifikatori - Telpass
|
pasākumu telpu
modeli “Telpas”
|
|
Moduļi –
Klasifikatori – Tēmass
|
tēmu modeli “Tēmass”
|
|
Moduļi –
Klasifikatori – Tiesības
|
tiesību modeli
“Tiesības”
|
|
Moduļi –
Meklēšana – Pasākumi
|
Pasākumu
meklēšanas moduli
|
|
Moduļi –
Meklēšana – Personas
|
Personas
meklēšanas moduli
|
·
Darba
beigšanas pogu “Darba beigas”. Poga
nodrošina iespēju iziet no visas
sistēmas.
5.1
Personas
Šī ekrāna forma paredzēta
fizisko personu uzskaitei. Formā “Personas” obligāti aizpildāms lauks: Uzvārds.
|
|
Attēls 4
Personas(lapiņa - Tiesības)
Apakšējā datu
ievades logā ir divas lapiņas.
- Tiesības
No saraksta “Brīvās tiesības” ar pogas <= palīdzību Jūs varat
personai pievienot tiesību.
No saraksta “Piešķirtās tiesības” ar pogas => palīdzību Jūs varat
atņemt personai tiesību.
Piez. Ja Jūs nevarat pievienot pasākumam personu, tad jāiedod
personai pasākuma tiesība. To var izdarīt apakšējā datu ievades logā.
IMAGE13
|
|
- Apmeklētie
pasākumi:
Jūs varat redzēt visu pasākumu
sarakstu, kurās ir pierakstīta dotā persona. Divreiz noklikšķinot uz tabulu
Apmeklētie pasākumi, tiek nostādināts kursors uz izvēlēto pasākumu formā, kurā
tiek atspoguļoti visi pasākumi.
No saraksta “Brīvās tiesības” ar pogas <=
palīdzību Jūs varat personai pievienot tiesību.
No saraksta “Piešķirtās tiesības” ar pogas
=> palīdzību Jūs varat atņemt personai tiesību.
5.2
Telpas (klasifikators)
Šī ekrāna forma paredzēta
telpu, kurās notiek pasākumi,
uzskaitei.. Formā “Telpas” obligāti aizpildāmi lauki: Kods, Numurs, Vietu skaits.
IMAGE14
|
|
5.3
Tēmas (klasifikators)
Šī ekrāna forma paredzēta
pasākumu tēmu ievadei. Formā “Tēmas” obligāti aizpildāmi lauki: Kods, Tēma.
IMAGE15
|
|
5.4
Tiesības (klasifikators)
Šī ekrāna forma paredzēta Tiesību uzskaitei. Formā “Tiesības”
obligāti aizpildāms lauki: Kods,
Nosaukums.
IMAGE16
|
|
5.5
Pasākumu meklēšana.
Šī ekrāna forma paredzēta Pasākumu meklēšanai. Pasākumus var meklēt
pēc parametriem: Nosaukums, Tēma, No kura datuma pasākums sākas, beidzas,
pasākuma ilgums, sākuma laiks, kurā telpā norisinājies.
Atlasītos pasākumus var drukāt ar vai bez dalībniekiem.
IMAGE17
|
|
5.6
Personu meklēšana.
IMAGE18
|
|
Šī ekrāna forma paredzēta Personu meklēšanai. Personas var meklēt pēc
parametriem: Uzvārds, Vārds, Adrese, Tālruņa nr.
6
Programmas apraksts.
6.1 Datu plūsmu modelis.
6.2 ER modelis.
ER modelis tika veidots, izmantojot Oracle Designer 2000
apakšprogrammu DataDiagrammer. Katra kaste ir viena tabula. Tabulas nosaukums
ir kastē virs svītras, pēc zīmes “@” seko datu bāzes nosaukums – EDII. Katrai
kastei ir atribūti(lauki).
Ja pirms lauka ir simbols “*”, tad tas nozīmē, ka lauks ir obligāti
jāaizpilda, 0 – var neaizpildīt. Simbols “#”nozīmē, ka laukam ir primārā
atslēga.
Tabulas(entītes) ir savā starpā veido relācijas.
Šī zīme nozīmē, ka Tabula1 veido relāciju ar Tabulu2 “1” pret daudziem, pieraksta 1:n.
|
6.3
Datu modeļa apraksts.
Visas saites ar
datu bāzes datiem tiek speciāli izdalītas datu modelī. Šīs saites var būt:
-
datu
bāze,
-
tabulas,
-
pieprasījumi,
IMAGE19
|
|
Tā kā aplikācijas
tabulas dati atrodas Orākla datu bāzē, tad lai vērstos pie Orākla datu bāzes,
mēs izmantojam Delphi komponenti tDatabase, kurā kā parametrus nodod
SERVER NAME=orae
USER NAME=klubs
PASSWORD=kluba_parole
Lai strādātu ar
konkrētām tabulām, izmantojam komponenti tTable. Piemēram tabula tPasākumi ir
tTable komponente, atsevišķi komponentei var noradīt kādas kolonas, kādā
formātā attēlot un pat uzlikt filtra nosacījumu.
Ja mums ir
vajadzīgs pieprasījums no vairākām tabulām vai no abstraktās "Dual"
tabulas, tad izmanto komponenti "tQuery".
Piemēram, lai nolasītu katreiz unikālu vērtību no Orākla sistēmas
tabulas, izveidojam "tQuery" komponenti "qGetSeq", kurā
“Sql” teksts - “Select kluba_seq from
dual”, tad katreiz atverot šo pieprasījumu tiks nolasīta Orākla sekvence.
Piez. Visām
pieprasījuma un tabulu komponentēm tiek norādīta tDatabase komponente.
6.4
Datu moduļa pieprasījumi.
Tālāk tiek
apskatīti pieprasījumi, kurus izmanto gridi (lauku kopa, kura attēlo datus).
|
Pieprasījuma
komponentes vārds
|
Pieprasījuma
teksts
|
Paskaidrojums
|
Kurā gridā,
forma "Pasākumi"
|
|
qPerBri
|
SELECT
PER.PERSONA_ID,
UZVARDS||' '||VARDS As Persona
FROM K_PERSONAS PER
WHERE
PERSONA_ID NOT IN
(
SELECT PERSONA_FK
FROM K_DALIBNIEKI
WHERE
K_DALIBNIEKI.PASAKUMS_FK=
:PASAKUMS_ID)
ORDER BY Persona
|
Atlasa tās personas, kuras nav pierakstītas
pasākumam (pasākumu identificē parametrs :PASAKUMS_ID)
|
Personu saraksts
|
|
qPerTieBri
|
TIESIBA_ID,
:PERSONA_ID AS PERSONA_ID
FROM
K_TIESIBAS
WHERE
TIESIBA_ID NOT IN
(
SELECT TIESIBA_FK FROM K_PERSONAS_TIES
WHERE PERSONA_FK=:PERSONA_ID)
ORDER BY NOSAUKUMS
|
Atlasa tās tiesības, kuras vēl nav piešķirtas
personai(personu identificē parametrs :PERSONA_ID)
|
Atlikušās tiesības(forma Personas)
|
|
qPasTies
|
SELECT
T.NOSAUKUMS,
P_T.PAS_TIES_ID,
P_T.TIESIBA_FK,
P_T.PASAKUMS_FK
FROM
K_PASAKUMI_TIES P_T,K_TIESIBAS T
WHERE
P_T.PASAKUMS_FK = :PASAKUMS_ID
AND
T.TIESIBA_ID = P_T.TIESIBA_FK
AND
TIESIBA_FK IN
(SELECT
TIESIBA_FK
FROM
K_PASAKUMI_TIES
WHERE
PASAKUMS_FK = :PASAKUMS_ID)
|
Atlasa pasākumam(pasākumu identificē parametrs
:PASAKUMS_ID) piešķirtās tiesības
|
Piešķirtās tiesības
|
|
qPasTieBri
|
SELECT
T.NOSAUKUMS,
T.TIESIBA_ID
FROM
K_TIESIBAS T
WHERE
T.TIESIBA_ID NOT IN
(SELECT
TIESIBA_FK
FROM
K_PASAKUMI_TIES
WHERE
PASAKUMS_FK = :PASAKUMS_ID)
ORDER BY T.NOSAUKUMS
|
Atlasa tās tiesības, kuras nav piešķirtas
tekošajam pasākumam (pasākumu identificē parametrs :PASAKUMS_ID)
|
Atlikušās tiesības
|
6.5
Datu moduļa funkciju apraksts.
|
Funkcija
|
Ko dara
|
|
Sequence
|
Atgriež unikālu vērtību
|
|
FillKd
|
Aizpilda klasifikatoru tabulas identifikatoru ar
unikālu vērtību
|
|
TPersonasNewRecord
|
Aizpilda Personas identifikatoru ar f-jas
Sequence rezultātu
|
|
TTelpasNewRecord
|
Aizpilda Telpas identifikatoru ar f-jas Sequence
rezultātu
|
|
TTemasKlNewRecord
|
Aizpilda Tēmas identifikatoru ar f-jas Sequence
rezultātu
|
|
TPasakumiNewRecord
|
Aizpilda Pasākuma identifikatoru ar f-jas
Sequence rezultātu
|
|
TPasPerNewRecord
|
Aizpilda identifikatoru ar f-jas Sequence
rezultātu
|
|
TTiesibasNewRecord
|
Aizpilda Tiesības identifikatoru ar f-jas
Sequence rezultātu
|
|
TPasPerAfterPost
|
Atjauno Brīvo personu pieprasījumu, jo ir
manījies dalībnieku sastāvs
|
|
TPerTieAfterPost
|
Atjauno Personu tiesību pieprasījumu, jo ir
manījušas personas tiesības
|
|
TPerTieAfterPost
|
Atjauno Personu tiesību pieprasījumu, jo ir
manījušas personas tiesības
|
|
DMCreate
|
Atver tabulas
|
|
TpasakumiILGUMSGetText
|
Atgriež no datuma tipa tikai laiku
|
|
TpasakumiILGUMSSetText
|
Ieraksta datuma tipa laukā laiku
|
|
TpersonasAfterPost
|
Atjauno visus pieprasījumus, kuri saistīti ar
Personu tabulu
|
6.6
Pasākumi
Informatīvā
sistēmas galvenā forma “Klubs” ir nepieciešama priekš jaunu pasākumu
ievadīšanas un esošo pasākumu labošanas, kā arī tiesību piešķiršanu pasākumiem
un tiesību dzēšanu.
No galvenās formas var izsaukt
palīgformas – Personas, Telpas, Tēmas, Tiesības, Personu meklēšana, Pasākumu
meklēšana.
aaa
|
Funkcijas
nosaukums
|
Ko dara
|
|
BpasTieAddClick
|
pievieno pasākumam izvēlēto personu
|
|
PersonasFindClick
|
izsauc Personu meklēšanas formu
|
|
BDalVesClick
|
Izsauc personu formu, un iestāda lapu –
Dalībnieku vēsture
|
|
ParProgrammu1Click
|
parāda palīdzības formu
|
|
PersonasClick
|
izsauc personu formu
|
|
BPasTieAddClick
|
pievieno pasākumam jaunu tiesību
|
|
bPasTieDelClick
|
izmet pasākuma tiesību
|
|
PasFinClick
|
izsauc pasākumu meklēšana formu
|
|
BtnDzestClick
|
izmet tekošo pasākumu
|
|
BtnPievienotClick
|
pievieno jaunu pasākumu
|
|
FormClose
|
aizver Kluba aplikāciju
|
|
BtnApstipClick
|
nosūta pasākumu tabulas izmaiņas uz datu bāzi
|
|
BtnAtceltClick
|
atsauc pasākumu tabulas izmaiņas
|
|
Telpas2Click
|
izsauc Telpu formu
|
|
Tmas1Click
|
izsauc Tēmu
formu
|
|
Tiesbas1Click
|
izsauc Tiesību formu
|
|
DBGPasDalClick
|
nostājas personu tabulā uz to personu, kura ir
izvēlēta
|
|
BtnLemMekClick
|
Izsauc pasākumu meklēšanas formu
|
|
sPasakumiStateChange
|
atkarībā no pasākumu tabulas stāvokļa, izspīdina
pogas
|
6.7
Personas
Personu modelis
ir nepieciešams priekš jaunu personu reģistrēšanas, esošo personu datu
izmainīšanas. Šajā modulī var definēt personas tiesības un redzēt personas
piedalīšanos pasākumos.
Funkcijas
|
Funkcijas
nosaukums
|
Ko dara
|
|
SpersonasStateChange
|
Atkarībā no
tabulas stāvokļu maina pogu stāvokļus
|
|
BtnDzestClick
|
Izmet tekošo
ierakstu no Personu tabulas
|
|
BtnBeigtClick
|
Aizver Personu
formu
|
|
BtnApstipClick
|
Nosūta personu
tabulas izmaiņas uz datu bāzi.
|
|
BtnAtceltClick
|
Atsauc personu
tabulas izmaiņas
|
|
FormClose
|
Piedāvā
lietotājam saglabāt izmaiņas
|
|
DbgPersonasEnter
|
atzīmē, kura ir
tekošā tabula
|
|
DbgPersonasTiesEnter
|
Atzīmē, kura ir
tekošā tabula
|
|
SperTieStateChange
|
Atkarībā no
Personu Tiesību tabulas stāvokļa
|
|
SperTieStateChange
|
Atkarībā no
Personu Tiesību tabulas stāvokļa
|
|
BperTieAdd
|
Aizpilda
Personu tiesību tabulu
|
|
BperTieDelClick
|
Izmet personas
tekošo tiesību
|
|
BtnLemMekClick
|
Izsauc Personu
meklēšanas logu
|
|
DBGPasakumiDblClick
|
nostājās
Pasākumu tabulā uz izvēlēto pasākumu
|
6.8 Pasākumu meklēšana
Kad lietotājs ir aizpildījis kontroles laukus un nospiedis pogu
“Kārtot tad tiek aizpildīti pieprasījuma parametri un izpildīts
pieprasījums(izvadīts uz ekrāna “gridos” – Pasākumi, Dalībnieki”). Pieprasījums
– Dalībnieki ir details” attiecībā pret Pasākumiem, to definē pieprasījuma īpašībā.
Funkcijas
|
Funkcijas
nosaukums
|
Ko dara
|
|
BtnMekletClick
|
Atlasa
pasākumus un dalībniekus
|
|
BdrukatClick
|
Izsauc reportu
– Pasākumi
|
|
BdruDalClick
|
Izsauc reportu
– Pasākumi un dalībnieki
|
6.9
Personu meklēšana
Atlasa personas
pēc atlases parametriem – “Uzvārds”, “Vārds”, “Adrese”, Telefons. Piez. Divreiz
noklikšķinot uz Personu "gridu", var nostāties personu tabulā uz
izvēlēto personu.
Funkcijas
|
Funkcijas
nosaukums
|
Ko dara
|
|
FindPers
|
atlasa datus no
Personu tabulas pēc uzdotiem kritērijiem
|
|
DbgPersonasFindDblClick
|
nostājas
personu tabulā uz izvēlēto personu
|
Secinājumi
Kursa darba
izpildes laikā apguvu:
-
programmēšanas
valodu – Delphi 2.0,
-
datu
bāzu sistēmu Oracle.
Iemācījos
patstāvīgi risināt jautājumus saistītus ar uzdoto darbu.
Secinu, ka izvēlētā
programmēšanas valoda atbilst mūsdienu prasībām, un aplikācija pilnībā veic
dotā kursa projekta uzdevumu.
Izmantotās
literatūras saraksts
1.
User`s
guide for Borland Delphi.
(Borland International, Inc.)
2.
Object
Pascal Language Guide.
(Borland International, Inc.)
3.
Client/Server
strategies, David Vaskevitch.
(IDG Books Worlwide, Inc)
4.
SQL
Plus Users Guide and Reference, Version 3.1, Frank Rovitto
(Oracle Corporation)
5.
Oracle
Designer/2000, S,Chatwin, Helen Symington, Leon McArdle
(Oracle Corporation).
Pielikums
7 Moduļu kodi.
7.1 Modulis – “Datu modulis”.
function TDM.Sequence :
integer;
// Atgriež unikālu
vērtību. Izmanto, aizpildot ieraksta unikālo atslēgu
begin
DM.qGetSeq.Close;
DM.qGetSeq.Open;
Result := DM.qGetSeq['NEXTVAL'];
end;
procedure
TDM.FillKd(DataSet: TDataSet);
// Aizpilda klasifikatoru
tabulas unikālo atslēgu
var
vKd_New : String[4];
begin
// Aprēķiniem izmanto tabulas komonenti –
qTemp
DM.qTemp.Close;
DM.qTemp.SQL.Clear;
// Atrod maksimālo
atslēgas lauka vērtību un pieskaita 5
DM.qTemp.SQL.Add('SELECT MAX(' +
DataSet.Fields[0].FieldName + ') FROM ' +
(DataSet as TTable).TableName);
Dm.qTemp.Open;
if DM.qTemp.Fields[0].Value = Null
then vKd_New := '0005'
else vKd_New := IntToStr(StrToInt(
DM.qTemp.Fields[0].Value ) + 5);
vKd_New := Copy('000',1,4-Length(vKd_New)) +
vKd_New;
DataSet.Fields[0].Value := vKd_New;
end;
procedure
TDM.tPersonasNewRecord(DataSet: TDataSet);
// Aizpilda tabulas
Persona unikālo atslēgu
begin
DataSet['PERSONA_ID'] :=
Sequence;
end;
procedure
TDM.tTelpasNewRecord(DataSet: TDataSet);
// Aizpilda tabulas
Telpas unikālo atslēgu
begin
DataSet['TELPA_ID'] :=
Sequence;
end;
procedure
TDM.tTemasKlNewRecord(DataSet: TDataSet);
// Aizpilda tabulas
Telpas unikālo atslēgu
begin
FillKd( DataSet );
end;
procedure
TDM.tPasakumiNewRecord(DataSet: TDataSet);
// Aizpilda tabulas
Telpas unikālo atslēgu
begin
DataSet['PASAKUMS_ID'] :=
Sequence;
end;
procedure
TDM.tPasPerNewRecord(DataSet: TDataSet);
// Aizpilda tabulas Dalībnieki
unikālo atslēgu
begin
DataSet['DALIBNIEKS_ID']
:= Sequence;
end;
procedure
TDM.tTiesibasNewRecord(DataSet: TDataSet);
// Aizpilda tabulas
Tiesības unikālo atslēgu
begin
DataSet['TIESIBA_ID'] :=
Sequence;
end;
procedure
TDM.tPasPerAfterPost(DataSet: TDataSet);
// Atjauno Brīvo personu
pieprasījumu, jo ir manījies dalībnieku sastāvs
begin
qPerBri.Close;
qPerBri.Open;
end;
procedure
TDM.tPerTieAfterPost(DataSet: TDataSet);
// Atjauno Personu
tiesību pieprasījumu, jo ir manījušas personas tiesības
begin
qPerTie.Close;
qPerTieBri.Close;
qPerTie.Open;
qPerTieBri.Open;
end;
procedure
TDM.tPasTiesAfterPost(DataSet: TDataSet);
// Atjauno Pasākumu
tiesību un brīvo tiesību pieprasījumu, jo ir mainījušās pasākuma tiesības
begin
qPasTies.Close;qPasTieBri.Close;qPasTies.Open;qPasTieBri.Open;
end;
procedure
TDM.DMCreate(Sender: TObject);
begin
// Atver tabulas
tPasakumi.Open;tPasPer.Open;tPerPas.Open;tPersonas.Open;tPerTie.Open;
tPasTies.Open;tPerTie.Open;tTemasKl.Open;tTelpas.Open;tTiesibas.Open;
// Atver visus
pieprasījumus
qPasTies.Open;qPasTieBri.Open;qPer.Open;qPerBri.Open;qPerTie.Open;qPerTieBri.Open;
end;
procedure
TDM.tPasakumiILGUMSGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
// Uz ekrāna izvada
pasākuma laiku formātā HH:MM
begin
Text := copy((Sender as
tDateTimeField).asString,10,5);
end;
procedure
TDM.tPasakumiILGUMSSetText(Sender: TField; const Text: string);
// Ieraksta tabulā
Pasākumi laiku formātā HH:MM
begin
(Sender as
tDateTimeField).asDateTime := strToDateTime('01.01.01 '+text);
end;
procedure
TDM.tPersonasAfterPost(DataSet: TDataSet);
// Atver visus
pieprasījumus, kas saistīti ar Personu tabulu
begin
qPer.Close;qPer.Open;
qPerBri.Close;qPerBri.Open;
qPerTie.Close;qPerTie.Open;
qPerTieBri.Close;qPerTieBri.Open;
end;
7.2
Pasākumi
procedure
TfPasakumi.bPasTieAddClick(Sender: TObject);
// pievieno pasākumam
izvēlēto personu
var
vPasId, vPerId: integer;
begin
vPerId :=
DM.qPerBri.FieldByName('PERSONA_ID').asInteger;
vPasId :=
DM.tPasakumi.FieldByName('PASAKUMS_ID').asInteger;
DM.tPasPer.Append;
DM.tPasPer['PERSONA_FK'] := vPerId;
DM.tPasPer['PASAKUMS_FK'] := vPasId;
DM.tPasPer.Post;
dm.tPerPas.Refresh;
end;
procedure
TfPasakumi.PersonasFindClick(Sender: TObject);
// izsauc Personu
meklēšanas formu
begin
fPersonasFind.ShowModal;
end;
procedure
TfPasakumi.bDalVesClick(Sender: TObject);
// Izsauc personu formu,
un iestāda lapu – Dalībnieku vēsture
begin
fPersonas.Show;
fPersonas.pages.activePage
:= fPersonas.pages.Pages[1];
end;
procedure TfPasakumi.ParProgrammu1Click(Sender:
TObject);
// parāda palīdzības
formu
begin
fParProgzi.Show;
end;
procedure
TfPasakumi.PersonasClick(Sender: TObject);
// izsauc personu formu
begin
fPersonas.Show;
fPersonas.pages.activePage
:= fPersonas.pages.Pages[0];
end;
procedure
TfPasakumi.bPasTieAddClick(Sender: TObject);
// pievieno pasākumam
jaunu tiesību
var
vPasId, vTieId: integer;
begin
vPasId :=
DM.tPasakumi.FieldByName('PASAKUMS_ID').asInteger;
vTieId :=
DM.qPasTieBri.FieldByName('TIESIBA_ID').asInteger;
DM.tPasTies.Append;
DM.tPasTies['PAS_TIES_ID']
:= DM.sequence;
DM.tPasTies['PASAKUMS_FK']
:= vPasId;
DM.tPasTies['TIESIBA_FK']
:= vTieId;
DM.tPasTies.Post;
end;
procedure
TfPasakumi.bPasTieDelClick(Sender: TObject);
// izmet pasākuma tiesību
var vSql: string;
begin
if
DM.tPasTies.FindKey([DM.qPasTies.FieldByName('PAS_TIES_ID').asString]) then
DM.tPasTies.Delete;
end;
procedure
TfPasakumi.PasFinClick(Sender: TObject);
// izsauc pasākumu
meklēšana formu
begin
fPasFin.ShowModal;
end;
procedure TfPasakumi.BtnDzestClick(Sender:
TObject);
// imzet tekošo pasākumu
begin
DM.tPasakumi.Delete;
end;
procedure
TfPasakumi.BtnPievienotClick(Sender: TObject);
// pievieno jaunu
pasākumu
begin
DM.tPasakumi.Append;
end;
procedure
TfPasakumi.FormClose(Sender: TObject; var Action: TCloseAction);
// aizver Kluba
aplikāciju
begin
Application.Terminate;
end;
procedure
TfPasakumi.BtnApstipClick(Sender: TObject);
// nosūta pasākumu
tabulas izmaiņas uz datu bāzi
begin
DM.tPasakumi.Post
end;
procedure
TfPasakumi.BtnAtceltClick(Sender: TObject);
// atsauc pasākumu
tabulas izmaiņas
begin
DM.tPasakumi.Cancel;
end;
procedure
TfPasakumi.Telpas2Click(Sender: TObject);
// izsauc Telpu formu
begin
fTelpas.Show;
end;
procedure
TfPasakumi.Tmas1Click(Sender: TObject);
// izsauc Tēmu formu
begin
fTemas.Show;
end;
procedure
TfPasakumi.Tiesbas1Click(Sender: TObject);
// izsauc Tiesību formu
begin
fTiesibas.Show;
end;
procedure
TfPasakumi.DBGPasDalClick(Sender: TObject);
// nostājas personu
tabulā uz to personu, kura ir izvēlēta
begin
DM.tPersonas.Locate('PERSONA_ID',DM.tPasPer.FieldByName('PERSONA_FK').asInteger,[]);
end;
procedure
TfPasakumi.BtnLemMekClick(Sender: TObject);
// Izsauc pasākumu
meklēšanas formu
begin
fPasFin.ShowModal;
end;
procedure
TfPasakumi.sPasakumiStateChange(Sender: TObject);
// atkarībā no pasākumu
tabulas stāvokļa, izspīdina pogas
var
Statuss : TDataSetState;
begin
Statuss := sPasakumi.State;
case Statuss of
dsInactive :
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsBrowse
:
begin
btnPievienot.Enabled := TRUE;
btnDzest.Enabled := TRUE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsInsert
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
dsEdit
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
end;
end;
7.3
Personas
procedure
TfPersonas.sPersonasStateChange(Sender: TObject);
// Atkarībā no tabulas
stāvokļu maina pogu stāvokļus
var
Statuss : TDataSetState;
begin
Statuss := sPersonas.State;
case Statuss of
dsInactive :
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsBrowse
:
begin
btnPievienot.Enabled := TRUE;
btnDzest.Enabled := TRUE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsInsert
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
dsEdit
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
end;
end;
procedure
TfPersonas.BtnPievienotClick(Sender: TObject);
// Pievieno jaunu
ierakstu tabulās - Personas vai Personas tiesības.
begin
// Ja aktīvā tabula ir
tabula “Personas”
if fPersonas.Tag = 1 then
begin
DM.tPersonas.Append;
dbgPersonas.SetFocus
end
else begin
DM.tPerTie.Append;
dbgPersonasTies.SetFocus;
end;
end;
procedure
TfPersonas.BtnDzestClick(Sender: TObject);
// Izmet tekošo ierakstu
no Personu tabulas
begin
DM.tPersonas.Delete;
dbgPersonas.SetFocus;
end;
procedure
TfPersonas.BtnBeigtClick(Sender: TObject);
// Aizver personu formu
begin
Close;
end;
procedure
TfPersonas.BtnApstipClick(Sender: TObject);
// Nosūta personu tabulas
izmaiņas uz datu bāzi.
begin
DM.tPersonas.Post;
dbgPersonas.SetFocus;
end;
procedure
TfPersonas.BtnAtceltClick(Sender: TObject);
// Atsauc personu tabulas
izmaiņas
begin
DM.tPersonas.Cancel;
dbgPersonas.SetFocus;
end;
procedure
TfPersonas.FormClose(Sender: TObject; var Action: TCloseAction);
// Ja izmaiņas nav
aizsūtītas uz datu bāzi, tad izlec logs, lai lietotājs
// apstiprina izmaiņas.
var
Statuss : TDataSetState;
begin
Statuss := sPersonas.State;
if ( Statuss = dsInsert ) or ( Statuss =
dsEdit ) then
case MessageDlg('Vai saglabāt izmaiņas
?',mtConfirmation,[mbYes,mbNo,mbCancel],0 ) of
mrYes
: DM.tPersonas.Post;
mrNo
: DM.tPersonas.Cancel;
mrCancel :
begin
dbgPersonas.SetFocus;
Abort;
end;
end;
end;
procedure
TfPersonas.dbgPersonasEnter(Sender: TObject);
// Piešķir formas
mainīgajam vērtību 1, tas nozīmē, ka aktīvā
// tabula ir Personu
tabula
begin
fPersonas.Tag := 1;
end;
procedure TfPersonas.dbgPersonasTiesEnter(Sender:
TObject);
// atzīmē, kura ir tekošā
tabula
begin
// Piešķir formas
mainīgajam vērtību 1, tas nozīmē, ka aktīvā
// tabula nav Personu
tabula
fPersonas.Tag := 2;
end;
procedure
TfPersonas.sPerTieStateChange(Sender: TObject);
// Atkarībā no Personu
Tiesību tabulas stāvokļa
// izspīdina pogas
var
Statuss : TDataSetState;
begin
Statuss := sPerTie.State;
case Statuss of
dsInactive :
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsBrowse
:
begin
btnPievienot.Enabled := TRUE;
btnDzest.Enabled := TRUE;
btnApstip.Enabled := FALSE;
btnAtcelt.Enabled := FALSE;
end;
dsInsert
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
dsEdit
:
begin
btnPievienot.Enabled := FALSE;
btnDzest.Enabled := FALSE;
btnApstip.Enabled := TRUE;
btnAtcelt.Enabled := TRUE;
end;
end;
end;
procedure
TfPersonas.bPerTieAdd(Sender: TObject);
// aizpilda Personu
tiesību tabulu
var
vPerId, vTieId: integer;
begin
// saglabā tekošās
personas identifikatoru,
vPerId :=
DM.qPerTieBri.FieldByName('PERSONA_ID').asInteger;
// saglabā tās tiesības
identifikatora vērtību,
// kura ir tekošā brīvo
tiesību “gridā”
vTieId :=
DM.qPerTieBri.FieldByName('TIESIBA_ID').asInteger;
// Pievieno izvēlēto
tiesību Personu Tiesību tabulā
DM.tPerTie.Append;
DM.tPerTie['PERSONA_FK'] := vPerId;
DM.tPerTie['TIESIBA_FK'] := vTieId;
DM.tPerTie.Post;
end;
procedure
TfPersonas.bPerTieDelClick(Sender: TObject);
begin
// Izmet personas tekošo
tiesību
DM.tPerTie.Delete;
end;
procedure
TfPersonas.BtnLemMekClick(Sender: TObject);
begin
// Izsauc Personu meklēšanas
logu
fPersonasFind.Show;
end;
procedure
TfPersonas.DBGPasakumiDblClick(Sender: TObject);
// nostājās Pasākumu
tabulā uz izvēlēto pasākumu
begin
DM.tPasakumi.Locate('PASAKUMS_ID',DM.tPerPas.FieldByName('PASAKUMS_FK').asInteger,[]);
end;
7.4
Pasākumu meklēšana
procedure
TfPasFin.BtnMekletClick(Sender: TObject);
// Aizpilda pieprasījuma
parametrus, atkarībā, kādus lietotājs kontroles laukus ir aizpildījis, un
parāda uz ekrāna atlasītos datus(pasākumus, pasākuma dalībniekus)
begin
// Tiek aizpildīts pieprasījuma parametrs:
Pasākuma nosaukums
qPasFin.ParamByName('NOSAUKUMS').Value :=
eNosaukums.Text;
// Tiek aizpildīts pieprasījuma parametrs:
Tēmas ārējā atslēga
if cbTema.KeyValue = Null then
qPasFin.ParamByName('TEMA_FK').Value := 0
// Nozīmē, ka atlasē netiek ņemta vērā Tēma
else
qPasFin.ParamByName('TEMA_FK').Value :=
cbTema.KeyValue;
// atlase pēc Datuma No apakšējās robežas
if eDatNoMin.Text = ' .
. ' then
// ‘’
Nozīmē, ka atlasē netiek ņemts vērā pasākuma notikšanas Datums
qPasFin.ParamByName('DATNO_MIN').Value :=
''
else
qPasFin.ParamByName('DATNO_MIN').asDateTime :=
strToDateTime(eDatNoMin.Text);
// atlase pēc Datuma No
augšējās robežas
if eDatNoMax.Text = ' .
. ' then
qPasFin.ParamByName('DATNO_MAX').Value :=
''
else
qPasFin.ParamByName('DATNO_MAX').asDateTime :=
strToDateTime(eDatNoMax.Text);
// atlase pēc Datuma Līdz
apakšējās robežas
if eDatLidzMin.Text = ' .
. ' then
qPasFin.ParamByName('DATLIDZ_MIN').Value
:= ''
else
qPasFin.ParamByName('DATLIDZ_MIN').asDateTime :=
strToDateTime(eDatLidzMin.Text);
// atlase pēc Datuma Līdz
augšējās robežas
if eDatLidzMax.Text = ' .
. ' then
qPasFin.ParamByName('DATLIDZ_MAX').Value
:= ''
else
qPasFin.ParamByName('DATLIDZ_MAX').asDateTime :=
strToDateTime(eDatLidzMax.Text);
// Ilguma apaksējā atlases robeža
if eIlgumsMin.Text = ' : '
then
qPasFin.ParamByName('ILGUMS_MIN').asString := '0'
else
qPasFin.ParamByName('ILGUMS_MIN').asString
:= eIlgumsMin.Text;
// Ilguma augšējā atlases robeža
if eIlgumsMax.Text = ' : '
then
qPasFin.ParamByName('ILGUMS_MAX').asString := '0'
else
qPasFin.ParamByName('ILGUMS_MAX').asString := eIlgumsMax.Text;
// atlase pēc Telpas ārējās atslēgas
if cbTelpa.KeyValue = null then
qPasFin.ParamByName('TELPA_FK').Value := 0
else
qPasFin.ParamByName('TELPA_FK').Value :=
cbTelpa.KeyValue;
qPasFinDal.Close;
qPasFin.Close;
// Izdara pieprasījumu
Pasākumu tabulā pēc jaunām parametru vērtībām(Master pieprasījums)
qPasFin.Open;
// Izdara pieprasījumu
Dalībnieku tabulā pēc jaunām parametru vērtībām(Detail pieprasījums)
qPasFinDal.Open;
end;
procedure
TfPasFin.bDrukatClick(Sender: TObject);
// Izsauc Atlasīto
pasākumu reportu
begin
rPasFin.qrPasFin.Preview;
end;
procedure
TfPasFin.bDruDalClick(Sender: TObject);
// Izsauc Atlasīto
pasākumu un to dalībnieku reportu
begin
rFinPasDal.qrPasFinDal.Preview;
end;
7.5
Personu
meklēšana
procedure
TfPersonasFind.FindPers();
// atlasa datus no
Personu tabulas pēc uzdotiem kritērijiem
var
vSQLTeksts : String;
begin
// Ja ir ir aizpildīts “uzvārda” lauks, tad
pievieno “uzvārdu” Where nosacījumā
if ( eUzvards.Text <> '' ) then begin
vSQLTeksts := ' AND UPPER(UZVARDS) LIKE
''' + eUzvards.Text + '%''';
end;
// Ja ir ir aizpildīts
“vārda” lauks, tad pievieno “vārdu” Where nosacījumā
if ( eVards.Text <> '' ) then begin
vSQLTeksts := vSQLTeksts + ' AND
UPPER(VARDS) LIKE ''' + eVards.Text + '%''';
end;
// Ja ir ir aizpildīts
“adreses” lauks, tad pievieno “adresi” Where nosacījumā
if ( eAdrese.Text <> '' ) then begin
vSQLTeksts := vSQLTeksts + ' AND
UPPER(ADRESE) LIKE ''' + eAdrese.Text + '%''';
end;
// Ja ir ir aizpildīts
“talrunis” lauks, tad pievieno “adresi” Where nosacījumā
if ( eTalrunis.Text <> '' ) then begin
vSQLTeksts := vSQLTeksts + ' AND TALRUNIS
LIKE ''' + eTalrunis.Text + '%''';
end;
if vSQLTeksts <> '' then begin
// izgriež no sql teksta pirmos piecus
burtus (‘ AND ’)
vSQLTeksts := Copy ( vSQLTeksts, 6,
Length( vSQLTeksts ) - 5 );
vSQLTeksts := 'SELECT
PERSONA_ID,UZVARDS,VARDS,TALRUNIS,ADRESE’ +
‘ FROM K_PERSONAS WHERE ' + vSQLTeksts
+ 'ORDER BY UZVARDS,VARDS';
end
else
vSQLTeksts := 'SELECT
PERSONA_ID,UZVARDS,VARDS,TALRUNIS,ADRESE ‘ +
‘ FROM K_PERSONAS ORDER BY
UZVARDS,VARDS';
// izpilda Sql pieprasījumu un parāda datus
uz ekrāna
DM.qTemp.Close;
DM.qTemp.SQL.Clear;
DM.qTemp.SQL.Add( vSQLTeksts );
DM.qTemp.Open;
end;
procedure
TfPersonasFind.dbgPersonasFindDblClick(Sender: TObject);
begin
// nostājas personu
tabulā uz izvēlēto personu
DM.tPersonas.Locate('PERSONA_ID',DM.qTemp.FieldByName('PERSONA_ID').asInteger,[]);
DM.qPerBri.Locate('PERSONA_ID',DM.qTemp.FieldByName('PERSONA_ID').asInteger,[]);
end;
7.6
Trigeris “TRG_DALIBNIEKI_IU”
-- Trigeris
atļauj vai aizliedz pievienot
-- pasakumam
jaunu personu(tabula - K_DALIBNIEKI),
-- atkariibaa no
personu tiesibaam un pasaakuma tiesiibaam
CREATE OR REPLACE
TRIGGER TRG_DALIBNIEKI_IU
BEFORE
INSERT OR UPDATE OF
PERSONA_FK,PASAKUMS_FK
ON K_DALIBNIEKI
FOR EACH ROW
DECLARE
V_TEMP INTEGER;
-- Saskaita, cik ir pasakumam
zuliktas tiesibas
CURSOR C_TIESIBU_SKAITS IS
SELECT COUNT(PAS_TIES_ID)
FROM K_PASAKUMI_TIES WHERE
PASAKUMS_FK = :NEW.PASAKUMS_FK;
-- Salasa tas pasakuma tiesibas,
kuras sakrit ar personas tiesibaam
CURSOR C_TIESIBAS IS
SELECT PAS_TIES_ID FROM
K_PASAKUMI_TIES
WHERE
PASAKUMS_FK = :NEW.PASAKUMS_FK
AND TIESIBA_FK IN
(SELECT TIESIBA_FK FROM K_PERSONAS_TIES
WHERE PERSONA_FK = :NEW.PERSONA_FK);
BEGIN
OPEN
C_TIESIBU_SKAITS;
OPEN C_TIESIBAS;
-- Iesuta pasakuma tiesibu skaitu mainigaja
FETCH C_TIESIBU_SKAITS INTO V_TEMP;
-- Ja pasakumam nav nevienas tiesibas
IF (C_TIESIBU_SKAITS%NOTFOUND OR V_TEMP < 1
) THEN
DBMS_OUTPUT.PUT_LINE ('Nav pasaakumam
tiesiibas');
ELSE
FETCH C_TIESIBAS INTO V_TEMP;
-- ja personai nav neviena pasakuma tiesiba
IF C_TIESIBAS%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE ('Nav PERSONAI
tiesibas');
RAISE_APPLICATION_ERROR(-20001, 'Doto
personu nevar pierakstīt pasākuma, jo tai nav tiesības');
ELSE
DBMS_OUTPUT.PUT_LINE ('Persona veiksmiigi
pierakstiita pasaakumaa');
END IF;
END IF;
END;
/
show err TRIGGER
TRG_DALIBNIEKI_IU;
8
Tabulu struktūras
8.1 Pasākumi
IMAGE20
|
|
8.2 Personas
IMAGE21
|
|
8.3
Dalībnieki
IMAGE22
|
|
IMAGE23
|
|
8.4 Pasākumu tiesības
8.5
Personas tiesības
IMAGE24
|
|
8.6 Personas tiesības
IMAGE25
|
|
8.7
Telpas
IMAGE26
|
|
8.8 Tēmas
IMAGE27
|
|
9
Datu bāzes objektu skripti
9.1 Tabulu ģenerācijas skripts “KLUBS.TAB”
REM
REM This
ORACLE7 command file was generated by Oracle Server Generator
REM Version
5.5.10.0.0 on 08-MAY-98
REM
REM For application SELFTUTORIAL version 1
database EDII
REM
REM TABLE
REM
K_DALIBNIEKI
REM
K_PASAKUMI
REM
K_PASAKUMI_TIES
REM
K_PERSONAS
REM
K_PERSONAS_TIES
REM
K_TELPAS
REM
K_TEMAS_KL
REM
K_TIESIBAS
REM
PROMPT
PROMPT Creating Table K_DALIBNIEKI
CREATE TABLE k_dalibnieki(
dalibnieks_id NUMBER(17,0) NOT NULL,
persona_fk NUMBER(17,0) NOT NULL,
pasakums_fk NUMBER(17,0) NOT NULL
)
;
REM
PROMPT
PROMPT Creating Table K_PASAKUMI
CREATE TABLE k_pasakumi(
pasakums_id NUMBER(17,0) NOT NULL,
datumsno DATE NOT NULL,
datumslidz DATE NOT NULL,
nosaukums VARCHAR2(60) NOT NULL,
laiks DATE NOT NULL,
ilgums DATE NOT NULL,
telpa_fk NUMBER(17,0) NOT NULL,
tema_fk VARCHAR2(4) NULL,
veids VARCHAR2(4) NULL,
piezimes VARCHAR2(200) NULL
)
;
REM
PROMPT
PROMPT Creating Table K_PASAKUMI_TIES
CREATE TABLE k_pasakumi_ties(
pas_ties_id NUMBER(17,0) NOT NULL,
pasakums_fk NUMBER(17,0) NOT NULL,
tiesiba_fk NUMBER(17,0) NOT NULL
)
;
REM
PROMPT
PROMPT Creating Table K_PERSONAS
CREATE TABLE k_personas(
persona_id NUMBER(17,0) NOT NULL,
uzvards VARCHAR2(60) NOT NULL,
vards VARCHAR2(60) NULL,
adrese VARCHAR2(60) NULL,
talrunis VARCHAR2(12) NULL,
piezimes VARCHAR2(200) NULL
)
;
REM
PROMPT
PROMPT Creating Table K_PERSONAS_TIES
CREATE TABLE k_personas_ties(
persona_fk NUMBER(17,0) NOT NULL,
tiesiba_fk NUMBER(17,0) NOT NULL
)
;
REM
PROMPT
PROMPT Creating Table K_TELPAS
CREATE TABLE k_telpas(
telpa_id NUMBER(17,0) NOT NULL,
numurs NUMBER(17,0) NOT NULL,
vietuska NUMBER(6,0) NOT NULL,
piezimes VARCHAR2(200) NULL
)
;
REM
PROMPT
PROMPT Creating Table K_TEMAS_KL
CREATE TABLE k_temas_kl(
tema_kd VARCHAR2(4) NOT NULL,
nosaukums VARCHAR2(60) NOT NULL,
piezimes VARCHAR2(200) NULL
)
;
REM
PROMPT
PROMPT Creating Table K_TIESIBAS
CREATE TABLE k_tiesibas(
tiesiba_id NUMBER(17,0) NOT NULL,
nosaukums VARCHAR2(60) NOT NULL,
sencis_fk NUMBER(17,0) NULL,
piezimes VARCHAR2(200) NULL
)
;
9.2
Primāro, ārējo atslēgu ģenerācijas skripts “KLUBS.CON”
REM
REM This
ORACLE7 command file was generated by Oracle Server Generator
REM Version
5.5.10.0.0 on 08-MAY-98
REM
REM For application SELFTUTORIAL version 1
database EDII
REM
REM CONSTRAINT
PROMPT Adding PRIMARY Constraint To K_DALIBNIEKI
Table
ALTER TABLE K_DALIBNIEKI ADD (
CONSTRAINT DALIBNIEKS_UC
PRIMARY KEY (DALIBNIEKS_ID)
)
/
PROMPT Adding PRIMARY Constraint To K_PASAKUMI
Table
ALTER TABLE K_PASAKUMI ADD (
CONSTRAINT PASAKUMI_PASAKUMS_PK
PRIMARY KEY (PASAKUMS_ID)
)
/
PROMPT Adding PRIMARY Constraint To
K_PASAKUMI_TIES Table
ALTER TABLE K_PASAKUMI_TIES ADD (
CONSTRAINT PAS_TIES_UC
PRIMARY KEY (PAS_TIES_ID)
)
/
PROMPT Adding PRIMARY Constraint To K_PERSONAS
Table
ALTER TABLE K_PERSONAS ADD (
CONSTRAINT PERSONAS_PERSONA_PC
PRIMARY KEY (PERSONA_ID)
)
/
PROMPT Adding PRIMARY Constraint To
K_PERSONAS_TIES Table
ALTER TABLE K_PERSONAS_TIES ADD (
CONSTRAINT PERS_TIES_PC
PRIMARY KEY (PERSONA_FK,
TIESIBA_FK)
)
/
PROMPT Adding PRIMARY Constraint To K_TELPAS Table
ALTER TABLE K_TELPAS ADD (
CONSTRAINT TELPAS_TELPA_PK
PRIMARY KEY (TELPA_ID)
)
/
PROMPT Adding PRIMARY Constraint To K_TEMAS_KL
Table
ALTER TABLE K_TEMAS_KL ADD (
CONSTRAINT TEMAS_TEMA_PC
PRIMARY KEY (TEMA_KD)
)
/
PROMPT Adding PRIMARY Constraint To K_TIESIBAS
Table
ALTER TABLE K_TIESIBAS ADD (
CONSTRAINT TIESIBAS_TIESIBA_PC
PRIMARY KEY (TIESIBA_ID)
)
/
PROMPT Adding UNIQUE Constraint To K_DALIBNIEKI
Table
ALTER TABLE K_DALIBNIEKI ADD (
CONSTRAINT PAS_PERS_U
UNIQUE (PERSONA_FK,
PASAKUMS_FK)
)
/
PROMPT Adding UNIQUE Constraint To K_PASAKUMI_TIES
Table
ALTER TABLE K_PASAKUMI_TIES ADD (
CONSTRAINT PAS_TIES_U
UNIQUE (PASAKUMS_FK,
TIESIBA_FK)
)
/
PROMPT Adding UNIQUE Constraint To K_TELPAS Table
ALTER TABLE K_TELPAS ADD (
CONSTRAINT TELPAS_NUMURS
UNIQUE (NUMURS)
)
/
PROMPT Adding UNIQUE Constraint To K_TEMAS_KL
Table
ALTER TABLE K_TEMAS_KL ADD (
CONSTRAINT TEMAS_NOSAUKUMS_UC
UNIQUE (NOSAUKUMS)
)
/
PROMPT Adding FOREIGN Constraint To K_DALIBNIEKI
Table
ALTER TABLE K_DALIBNIEKI ADD (
CONSTRAINT DALIBNIEKI_PAS_FK
FOREIGN KEY (PASAKUMS_FK)
REFERENCES K_PASAKUMI (
PASAKUMS_ID)
)
/
PROMPT Adding FOREIGN Constraint To K_DALIBNIEKI
Table
ALTER TABLE K_DALIBNIEKI ADD (
CONSTRAINT DALIBNIEKI_PER_FK
FOREIGN KEY (PERSONA_FK)
REFERENCES K_PERSONAS (
PERSONA_ID)
)
/
PROMPT Adding FOREIGN Constraint To K_PASAKUMI
Table
ALTER TABLE K_PASAKUMI ADD (
CONSTRAINT PASAKUMI_TEL_FK
FOREIGN KEY (TELPA_FK)
REFERENCES K_TELPAS (
TELPA_ID)
)
/
PROMPT Adding FOREIGN Constraint To K_PASAKUMI
Table
ALTER TABLE K_PASAKUMI ADD (
CONSTRAINT PASAKUMI_TEM_KL_FK
FOREIGN KEY (TEMA_FK)
REFERENCES K_TEMAS_KL (
TEMA_KD)
)
/
PROMPT Adding FOREIGN Constraint To
K_PASAKUMI_TIES Table
ALTER TABLE K_PASAKUMI_TIES ADD (
CONSTRAINT ATLAUJAS_TIE_FK
FOREIGN KEY (TIESIBA_FK)
REFERENCES K_TIESIBAS (
TIESIBA_ID)
)
/
PROMPT Adding FOREIGN Constraint To
K_PASAKUMI_TIES Table
ALTER TABLE K_PASAKUMI_TIES ADD (
CONSTRAINT ATLAUJAS_PAS_FK
FOREIGN KEY (PASAKUMS_FK)
REFERENCES K_PASAKUMI (
PASAKUMS_ID)
)
/
PROMPT Adding FOREIGN Constraint To
K_PERSONAS_TIES Table
ALTER TABLE K_PERSONAS_TIES ADD (
CONSTRAINT PERS_TIES_PERS_FK
FOREIGN KEY (PERSONA_FK)
REFERENCES K_PERSONAS (
PERSONA_ID)
)
/
PROMPT Adding FOREIGN Constraint To
K_PERSONAS_TIES Table
ALTER TABLE K_PERSONAS_TIES ADD (
CONSTRAINT PERS_TIES_TIES_FK
FOREIGN KEY (TIESIBA_FK)
REFERENCES K_TIESIBAS (
TIESIBA_ID)
)
/
9.3
Indeksu ģenerācijas
skripts “KLUBS.IND”
REM
REM This
ORACLE7 command file was generated by Oracle Server Generator
REM Version
5.5.10.0.0 on 08-MAY-98
REM
REM For application SELFTUTORIAL version 1
database EDII
REM
REM INDEX
REM
ATLAUJAS_PASAKUMS_FK_I
REM
ATLAUJAS_TIESIBA_FK_I
REM
PASAKUMI_DATUMSKOP_I
REM
PASAKUMI_DATUMSLIDZ_I
REM
PASAKUMI_DATUMSNO_I
REM
PASAKUMI_TELPA_I
REM
PASAKUMI_TEMASNOS_I
REM
PASAKUMI_TEMA_FK_I
REM
PASAKUMI_VEIDS_I
REM
PERSONAS_ADRESE_I
REM
PERSONAS_TALR_I
REM
PERSONAS_UZVARDS_I
REM
PERSONAS_VARDS_I
REM
TELPAS_VIETUSKA_I
REM
TIESIBAS_NOSAUKUMS_I
REM
REM Pasākums
REM
PROMPT
PROMPT Creating Index ATLAUJAS_PASAKUMS_FK_I on
Table K_PASAKUMI_TIES
CREATE INDEX ATLAUJAS_PASAKUMS_FK_I ON
K_PASAKUMI_TIES
(
pasakums_fk )
PCTFREE 10
;
REM
REM Tiesības
REM
PROMPT
PROMPT Creating Index ATLAUJAS_TIESIBA_FK_I on
Table K_PASAKUMI_TIES
CREATE INDEX ATLAUJAS_TIESIBA_FK_I ON
K_PASAKUMI_TIES
(
tiesiba_fk )
PCTFREE 10
;
REM
REM Pasākuma ilgums
REM
PROMPT
PROMPT Creating Index PASAKUMI_DATUMSKOP_I on
Table K_PASAKUMI
CREATE INDEX PASAKUMI_DATUMSKOP_I ON K_PASAKUMI
(
ilgums
)
PCTFREE 10
;
REM
REM Pasākuma beigu datums un laiks
REM
PROMPT
PROMPT Creating Index PASAKUMI_DATUMSLIDZ_I on
Table K_PASAKUMI
CREATE INDEX PASAKUMI_DATUMSLIDZ_I ON K_PASAKUMI
(
datumslidz )
PCTFREE 10
;
REM
REM Pasākuma sākuma datums un laiks
REM
PROMPT
PROMPT Creating Index PASAKUMI_DATUMSNO_I on Table
K_PASAKUMI
CREATE INDEX PASAKUMI_DATUMSNO_I ON K_PASAKUMI
(
datumsno )
PCTFREE 10
;
REM
REM Kurā telpā notiek pasākums
REM
PROMPT
PROMPT Creating Index PASAKUMI_TELPA_I on Table
K_PASAKUMI
CREATE INDEX PASAKUMI_TELPA_I ON K_PASAKUMI
(
telpa_fk )
PCTFREE 10
;
REM
REM Tēmas nosaukums
REM
PROMPT
PROMPT Creating Index PASAKUMI_TEMASNOS_I on Table
K_PASAKUMI
CREATE INDEX PASAKUMI_TEMASNOS_I ON K_PASAKUMI
(
nosaukums )
PCTFREE 10
;
REM
REM Tēmas nosaukums
REM
PROMPT
PROMPT Creating Index PASAKUMI_TEMA_FK_I on Table
K_PASAKUMI
CREATE INDEX PASAKUMI_TEMA_FK_I ON K_PASAKUMI
(
tema_fk )
PCTFREE 10
;
REM
REM Pasākuma veids
REM
PROMPT
PROMPT Creating Index PASAKUMI_VEIDS_I on Table
K_PASAKUMI
CREATE INDEX PASAKUMI_VEIDS_I ON K_PASAKUMI
(
veids
)
PCTFREE 10
;
REM
REM Personas adrese
REM
PROMPT
PROMPT Creating Index PERSONAS_ADRESE_I on Table
K_PERSONAS
CREATE INDEX PERSONAS_ADRESE_I ON K_PERSONAS
(
adrese
)
PCTFREE 10
;
REM
REM Personas tālrunis
REM
PROMPT
PROMPT Creating Index PERSONAS_TALR_I on Table
K_PERSONAS
CREATE INDEX PERSONAS_TALR_I ON K_PERSONAS
(
talrunis )
PCTFREE 10
;
REM
REM Personas uzvārds
REM
PROMPT
PROMPT Creating Index PERSONAS_UZVARDS_I on Table
K_PERSONAS
CREATE INDEX PERSONAS_UZVARDS_I ON K_PERSONAS
(
uzvards )
PCTFREE 10
;
REM
REM Personas vārds
REM
PROMPT
PROMPT Creating Index PERSONAS_VARDS_I on Table
K_PERSONAS
CREATE INDEX PERSONAS_VARDS_I ON K_PERSONAS
(
vards
)
PCTFREE 10
;
REM
REM Vietu skaits
REM
PROMPT
PROMPT Creating Index TELPAS_VIETUSKA_I on Table
K_TELPAS
CREATE INDEX TELPAS_VIETUSKA_I ON K_TELPAS
(
vietuska )
PCTFREE 10
;
REM
REM Tiesību nosaukums
REM
PROMPT
PROMPT Creating Index TIESIBAS_NOSAUKUMS_I on
Table K_TIESIBAS
CREATE INDEX TIESIBAS_NOSAUKUMS_I ON K_TIESIBAS
(
nosaukums )
PCTFREE 10
;

Nav komentāru:
Ierakstīt komentāru