ievads - web viewšis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo...

38
RĪGAS TEHNISKĀ UNIVERSITĀTE Datorzinātnes un informācijas tehnoloģijas fakultāte Datu bāzu vadības sistēmas Praktiskais darbs #5 DATU IZGŪŠANA NO DAŽĀDIEM DATU AVOTIEM (MS Access, MS Excel & OLAP Cube) Izstrādāja: students Nauris Ješkevics 2.kurss, 9.grupa 051RDB046 Pārbaudīja: asociētais profesors Jānis Eiduks

Upload: lamkien

Post on 29-Mar-2018

227 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

RĪGAS TEHNISKĀ UNIVERSITĀTEDatorzinātnes un informācijas tehnoloģijas fakultāte

Datu bāzu vadības sistēmas

Praktiskais darbs #5

DATU IZGŪŠANA NO DAŽĀDIEM DATU AVOTIEM(MS Access, MS Excel & OLAP Cube)

Izstrādāja: students Nauris Ješkevics2.kurss, 9.grupa

051RDB046Pārbaudīja: asociētais profesors Jānis Eiduks

RĪGA 2007

Page 2: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Saturs

IEVADS 3

IZVEIDOTAIS LIETOJUMS 4

LIETOJUMA FUNKCIONĒŠANA 5

DATU AVOTU PĀRLŪKOŠANA 5DATU AVOTU METADATŅU IZGŪŠANA 8VAICĀJUMU VEIDOŠANA DATU AVOTIEM 14LIETOJUMA AIZVĒRŠANA 24

VISUAL BASIC REDAKTORS MS ACCESS VIDĒ 25

SECINĀJUMI 26

2

Page 3: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Ievads

Šis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar datu bāzu vadības sistēmu MS Access, kas, principā, nepieciešama tikai viena lietojuma jeb pamata formas izveidei un programmēšanas valodas Visual Basic piesaistei. Šis lietojums (pamata forma) ir nepieciešams, lai būtu iespējams pieslēgties dažādiem datu avotiem, izmantojot ADO (Active Data Object) tehnoloģiju. Šis lietojums paredzēts MS Access, MS Excel un OLAP Cube datu avota pieslēgšanai. Līdz ar pieslēgšanos izvēlētajam datu avotam ir iespēja apskatīt tā metadatni (tabulas, kubi un to atribūti), lai būtu iespējams vēlāk izgūt nepieciešamo informāciju no šī datu avota. Ar metadatnes palīdzību tālāk ir iespējams uzrakstīt labi pazīstamo SQL vaicājumu šajā lietojumā, kura rezultāts atspoguļosies jaunā formā, ņemot kā avotu izgūto datu avota tabulu. Jāpiebilst, ka no OLAB Cube, lai izgūtu datus ir jāpielieto MDX priekšraksts, kas atšķiras no SQL vaicājuma. Šī lietojuma elementu notikumu apstrāde ir veikta ar programmēšanas valodu Visual Basic redaktoru. Šeit jau vairāk nepietiek ar vizuālo programmēšanu, kad var vienkārši izvēlēties kādu no piedāvātajām standarta makrokomandām, jo lietojuma notikumi balstās uz darbību kopumu, ko nespēj sniegt šīs standarta makrokomandas. Tāpēc no manuālās programmēšanas nekur neizbēgt! ;)

3

Page 4: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Izveidotais lietojums

Lietojumu es izveidoju MS Access objektu sadaļā Forms un tad no šī objekta izvēlņu joslas, izvēloties New/Design View .

Attēls 1 - Lietojums

1. Poga, ar kuras palīdzību ir iespējams pārlūkot un izvēlēties nepieciešamo datu avotu, papildus vēl norādot kādu no 3 piedāvātajiem filtriem, kuri attiecīgi izfiltrē vai nu MS Access, vai MS Excel, vai arī MS OLAP Cube datu avotus.

2. Teksta lauks, kurā automātiski parādīsies ceļš jeb direktorija līdz norādītajam datu avotam. Piemēram: C:\Documents and Settings\Naurisimo\Desktop\base5\Hockey_DB\Kubiks_Rubix.cub.

3. Teksta lauks, kurā automātiski parādās izvēlētais datu avots, piemēram, MS OLAP Cube (*.cub).4. Teksta lauks, kurā parādās datu devējs attiecīgajam datu avotam, piemēram, msolap;.5. Teksta lauks, kurā automātiski parādās datu avota papildus īpašības. Šīs papildus īpašības attiecas tikai uz MS

Excel datu avotu, kad parādās sekojoša izteiksme: Extended Properties = Excel 8.0;.6. Poga, pēc kuras nospiešanas, saraksta laukā „Objektu saraksts” (7) parādīsies vai nu tabulu nosaukumi, vai arī

kuba nosaukums; tas atkarīgs no izvēlētā datu avota.7. Saraksta lauks, kurā parādās vai nu tabulu nosaukumi, vai arī kuba nosaukums. Nospiežot uz kādu no tabulām

vai kuba, automātiski saraksta laukā „Atribūtu saraksts” (8) parādīsies tabulas vai kuba atribūti. 8. Saraksta lauks, kurā parādās kādas tabulas vai kuba atribūti.9. Poga, pēc kuras nospiešanas atveras, teksta laukā (11) ievadītā vaicājuma (tikai MS Access un MS Excel datu

avots), rezultātu forma.10. Poga, pēc kuras nospiešanas atveras, teksta laukā (11) ievadītā vaicājuma (tika MS OLAP Cube datu avots),

rezultātu forma.11. Teksta lauks, kurš paredzēts vaicājuma uzrakstīšanai.12. Poga, pēc kuras nospiešanas parādās paziņojuma logs par to, vai ir vēlme aizvērt šo lietojumu. Apstiprinot

paziņojuma logu ar „Yes”, lietojums tiks aizvērts un saglabāts.

4

Page 5: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Lietojuma funkcionēšana

Datu avotu pārlūkošana

No sākuma parādīšu kā strādā lietojuma poga ar nosaukumu „Pārlūkot...” (attēls 2).

Attēls 2 – Failu dialoga logs

Attēlā 2 ir redzams, ka, pēc pogas „Pārlūkot...” nospiešanas, atveras faila dialoga logs, tas ir, iespēja izvēlēties kādu failu kā datu avotu savienojuma izveidei. Ļoti nozīmīga lieta ir filtri, kas paredzēti noteikta faila tipa atfiltrēšanai. Pavisam ir 3 filtri, kuri attiecīgi atfiltrē vai nu MS Access, vai MS Excel, vai arī MS OLAP Cube failus kā datu avotus. Ja nebūtu šādi filtri, tad lietotājam būtu iespējams norādīt jebkādu faila tipu, bet tas ne pie kā laba nenovestu, jo ne jau no visiem failiem ir iespējams izgūt datus konkrētajā lietojumā. Pēc noklusējuma es uzstādīju MS Access Data Base filtru, kas attiecīgi atfiltrē visus failus ar paplašinājumu *.mdb. Izvēloties atbilstošo faila tipa filtru un datu avotu, lietojuma pirmajos 4 teksta laukos parādās automātiskās vērtības, kuras lietotājam nav nepieciešams ievadīt (attēls 3).

5

Page 6: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 3 – Savienojums ar datu avotu

Attēlā 3 ir redzams, ka 4 teksta lauki ir ieguvušas automātiskās vērtības pēc pogas „Pārlūkot...” izvēlētā datu avota. Šajā gadījumā ir izvēlēts MS Access Data Base (*.mdb) datu avots, datu devējs šim avotam ir Microsoft.Jet.OLEDB.4.0 un šis datu avots atrodas sekojošā direktorijā: C:\Documents and Settings\Naurisimo\Desktop\base5\Hockey_DB\Hockey_DB.mdb. Pēdējais lauks ar nosaukumu „Papildus īpašības” gan ir tukša teksta virkne, jo šeit vērtība parādās tikai izvēlētos MS Excel Book (*.xls) kā datu avotu (attēls 4).

Attēls 4

Izvēloties MS OLAP Cube (*.cub) kā datu avotu, ir redzams rezultāts kā parādīts attēlā 5.

Attēls 5Šeit galvenā atšķirība no abiem iepriekš apskatītajiem datu avotiem ir tāda, ka datu devējs ir msolap.

Šīs teksta lauku vērtības, izņemot teksta lauku „Datu avots”, ir ļoti nozīmīgas, jo tās atsaucas uz meta datu un vaicājumu izgūšanu. Tiek izveidots savienojums ar datu avotu.

Lai šī poga spētu šādi funkcionēt, tai noteikti ir jāpiekārto Visual Basic kods uz notikumu pogas noklikšķināšana. To var izdarīt aktivizējot šo pogu un tad no izvēlņu joslas izvēloties View/Properties. Tālāk notikumu sadaļā Event atrod notikumu On Click un izvēlas [Event Procedure] un nospiež blakus stāvošo pogu ar daudzpunktēm (attēls 6).

6

Page 7: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 6

Lietojuma „PamatForma” globālā VB koda daļa:Option Compare DatabaseDim DA As Boolean 'globālais mainīgais, kas paredzēts izvēlētajam datu avotam

Pogai „Pārlūkot...” piekārtotais VB kods uz notikumu klikšķis:Private Sub Browse_Click()'Deklarē mainīgo "Avots" kā "FileDialog" objektu. Dim Avots As FileDialog 'Izveido "Avots" kā faila izvēles dialoglogu. Set Avots = Application.FileDialog(msoFileDialogFilePicker) 'Tiek iznīcināti visi faila tipu filtri Avots.Filters.Clear 'Tiek izveidoti 3 filtri, kas atfiltrē tikai "Access", "Excel" un "OLAP kubu" failus Avots.Filters.Add "MS Access Data Base (*.mdb)", "*.mdb", 1 Avots.Filters.Add "MS Excel Book (*.xls)", "*.xls", 2 Avots.Filters.Add "MS OLAP Cube (*.cub)", "*.cub", 3 'Pēc noklusējuma tiek izmantots "Access" filtrs Avots.FilterIndex = 1 'Deklarē mainīgo "Izveele", kas saturēs ceļu uz failu Dim Izveele As Variant 'Tiek izvēlēts datu avots un atrasta tā direktorija, kura ierakstās teksta laukā „Dir” With Avots If .Show = -1 Then For Each Izveele In .SelectedItems Me.Dir.Value = Izveele & ";" Next Izveele Else End If End With 'Atkarībā no izvēlētā failu tipa filtra, tiek piešķirtas vērtības teksta laukiem, globālajam mainīgajam „DA” un tiek noteikts, kuras poga ir aktīva, kura nē Select Case Avots.FilterIndex Case 1: Me.Data.Value = "Microsoft.Jet.OLEDB.4.0;": Me.Prop.Value = "" Me.DatAv.Value = "MS Access Data Base (*.mdb);": DA = True: Me.SQL.Enabled = True: Me.SQL_OLAP.Enabled = False Case 2: Me.Data.Value = "Microsoft.Jet.OLEDB.4.0;": Me.Prop.Value = "Extended Properties = Excel 8.0;" Me.DatAv.Value = "MS Excel Book (*.xls);": DA = True: Me.SQL.Enabled = True: Me.SQL_OLAP.Enabled = False Case 3: Me.Data.Value = "msolap;": Me.Prop.Value = "" Me.DatAv.Value = "MS OLAP Cube (*.cub);": DA = False: Me.SQL.Enabled = False: Me.SQL_OLAP.Enabled = True End Select Set Avots = NothingEnd Sub

7

Page 8: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Datu avotu metadatņu izgūšana

Metadatne ir dati, kurus iegūst no datu avota pēc savienojuma izveidošanas. Šajā gadījumā pēc pogas „Apskatīt MetaDatus” nospiešanas būs iespējams iegūt vai nu datu avotu tabulu nosaukumus, vai nu kuba nosaukumu, un uzspiežot uz kādu no nosaukumiem, attiecīgi tiek parādīts tabulas vai kuba atribūti.

Tātad es paradīšu piemērus no katra datu avota veida, kā tad izskatās šī metadatnes padarīšana. Sākšu ar datu avotu MS Access Data Base, kur izvēlos apskatīt failu Futbola_DB.mdb, kas atrodas sekojošā direktorijā: C:\Documents and Settings\Naurisimo\Desktop\DITF\Futbola_DB.mdb. Attiecīga datu avota tabulu un to atribūtu uzbūve redzama attēlā 7!

Attēls 7 – Access datu avots

Šajā datu bāzē, kā redzams attēlā 7, ir 3 tabulas Valstis, Klubi un Spēlētāji, kuras satur vairākus atribūtus. Nospiežot lietojuma pogu „Apskatīt MetaDatus” parādās sekojošs rezultāts:

Attēls 8

Iegūtajā rezultātā attiecīgi tiek uzrādītas visas tabulas, ko satur datu bāze Futbola_DB.mdb. Nākošā lieta, ko noteikti jāapskata, ir kādas tabulas atribūtu apskate. Piemēram, es vēlos apskatīt atribūtus no tabulas Spēlētāji. Lai to izdarītu, ir vienkārši jāuzklikšķina uz nosaukuma Spēlētāji, kas atrodas izgūto tabulu listē (attēls 9).

8

Page 9: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 9

Attēlā 9 var redzēt, ka nospiežot kādu no tabulu nosaukumiem, attiecīgi listē „Atribūtu saraksts” parādās šīs tabulas atribūti.

Nākošais datu avots, ko aplūkošu ir MS Excel Book, kur izvēlos apskatīt failu Excel.xls, kas atrodas sekojošā direktorijā: C:\Documents and Settings\Naurisimo\Desktop\Excel.xls. Attiecīgais avota saturs ir aplūkojams attēlā 10. Jāpiebilst, ka datus nevarēs izgūt no jebkāda Excel faila, šim failam jāsatur definētas tabulas, tas ir, noteikts šūnu lauka apgabals, kas ir nodefinēts kā tabula. Attēlā 10 ir redzams, ka vienā šūnu laukā ir nodefinētas 2 tabulas Hokeja_Klubi un Vietas. Lai nodefinētu kādu šūnu apgabalu kā tabula, tad vispirms ir jāiezīmē attiecīgais apgabals un tad no izvēlņu joslas ir jāizvēlas Insert/Name/Define. Ar šādu definēšanas palīdzību tiks izveidotas tabulas, kur pirmais raksts tiks uztverts kā kolonnu nosaukumu kopa, bet pārējie raksti kā kolonnu vērtību kopas.

Attēls 10 – Excel datu avots

9

Page 10: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attiecīgi šim datu avotam, nospiežot lietojuma pogu „Apskatīt MetaDatus” parādīsies sekojošs iznākums:

Attēls 11

Iegūtajā rezultātā attiecīgi tiek uzrādītas visas tabulas, ko satur datu bāze Excel.xls. Kā redzams, tad parādās Excel laukā nodefinētie apgabali, kas veido tabulas. Paskatīšos tagad atribūtus tabulai Hokeja_Klubi:

Attēls 12

Iznākumā sanāk, ka tabula Hokeja_Klubi satur 4 atribūtus, par ko var arī pārliecināties attēlā 10.

Visbeidzot atliek vēl apskatīties datu avotu MS OLAP Cube, kur izvēlos apskatīties failu Abonesana.cub, kas atrodas sekojošā direktorijā: C:\Documents and Settings\Naurisimo\Desktop\OLAP\Abonesana.cub. Šis datu avots reprezentē datu noliktavu, kura ir konstruēta no dimensijām un to hierarhiskiem līmeņiem, kā arī no kopsavilkuma veidojošiem elementiem (attēls 13).

10

Page 11: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 13 – OLAP Cube datu avots

Tātad šeit Excel vidē ir reprezentēta OLAP Cube uzbūve, kurā ietilpst 5 dimensijas Dim_Gads, Dim_Ilgums, Dim_Novads, Dim_Uzvards Vards un Dim_Zurnals. Un vēl ir redzami arī kopsavilkuma veidojošie elementi (funkcijas) Abonetaju Skaits, Cenu Summa, Izdevumu Summa, Lpp Summa un Max Lidz Rigai. Attiecīgi šim datu avotam, nospiežot lietojuma pogu „Apskatīt MetaDatus” parādīsies sekojošs iznākums:

Attēls 14

Iznākumā tiek parādīts viens kuba nosaukums „OCWCube”. Atzīšos, ka nezinu kādā veidā var nodefinēt kuba nosaukumu, tāpēc pēc noklusējuma tiek piešķirts šāds anglisks nosaukums. Uzklikšķinot uz šī kuba nosaukuma parādīsies tā uzbūve listē „Atribūtu saraksts”, ko var aplūkot attēlā 15.

11

Page 12: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 15

Šeit uzrādās kuba dimensijas un visi tās hierarhiskie līmeņi, piedevām vēl parādot katra līmeņa veidojošo locekļu skaitu. Piemēram, kuba dimensijai Dim_Novads ir hierarhijas līmenis ar nosaukumu Novads, kur kā redzams attēlā 15 ir 4 locekļi, tātad 4 Latvijas novadu nosaukumi. Jāatzīst, ka kopsavilkuma veidojošos elementus nav iespējams redzēt metadatnē, jo tie principā neskaitās kā atribūti, kas veido kuba uzbūvi, bet gan kā funkcijas, kas veido kopsavilkuma vērtības. Katrā gadījumā man personīgi neizdevās nonākt pie slēdziena, lai arī šie elementi tiktu parādīti metadatnē; arī literatūras avoti par to neliecina. Bet nu metadatnē vismaz ir redzams, cik funkcijas satur šis kubs, un šīs funkcijas skaitās dimensijas Measures hierarhijas līmeņa MeasuresLevel locekļi (attēls 16).

Attēls 16

Kā redzams tad līmenis MeasuresLevel satur 5 locekļus, tātad 5 funkcijas, kas redzamas attēlā 13. Kā jau minēju iepriekš, tad it kā nav iespējams redzēt metadatnē šīs funkcijas, jo literatūras avotos neizdevās atrast šādu lietu. Tas savukārt apgrūtina veidot vaicājumus, jo nav iespējams redzēt nosaukumus šīm funkcijām. Nesaku, ka nav iespējams šo lietu realizēt, bet nu man personīgi neizdevās atrisāt šo problēmu.

Pogai „Apskatīt MetaDatus” piekārtotais VB kods uz notikumu klikšķis:Private Sub Meta_Click()'Deklarē mainīgos, kas veidos savienojuma īpašību Dim PAR1, PAR2, PAR3 As String'Piešķir mainīgajiem teksta lauka vērtības PAR1 = Forms("PamatForma").Controls("Data").Value PAR2 = Forms("PamatForma").Controls("Dir").Value PAR3 = Forms("PamatForma").Controls("Prop").Value'Tiek veidots jauns savienojums ar datubāzi Dim savienojums As New ADODB.Connection savienojums.Open "Provider = " & PAR1 & "Data Source =" & PAR2 & PAR3 Dim katalogs As New ADOX.Catalog 'jauns ADOX katalogs Dim cat As New ADOMD.Catalog 'jauns ADOMD katalogs Set katalogs.ActiveConnection = savienojums Set cat.ActiveConnection = savienojums Dim i As Integer'Ja tabulu listē ir kāda vērtība, tad to iztukšo If Me.TabListe.ListCount > 0 Then

12

Page 13: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Do Until Me.TabListe.ListCount = 0 Me.TabListe.RemoveItem i Loop End If'Ja atribūtu listē ir kāda vērtība,tad to iztukšo If Me.Liste.ListCount > 0 Then Do Until Me.Liste.ListCount = 0 Me.Liste.RemoveItem i Loop End If If DA = True Then 'ja datu avots Access vai Excel---------------------------------------------'Cikla gaitā pievieno tabulu nosaukumus objektu listei For i = 0 To katalogs.Tables.Count - 1 'Tiek parādīti tikai lietotāja izveidotās tabulas (ne MSys* objekti) If katalogs.Tables.Item(i).Type = "Table" And Right(katalogs.Tables.Item(i).Name, 1) <> "$" Then Forms("PamatForma").Controls("TabListe").AddItem Item:=katalogs.Tables.Item(i).Name End If Next i Else'Cikla gaitā pievieno kuba nosaukumu objektu listei--------------------------------------------- For i = 0 To cat.CubeDefs.Count - 1 Forms("PamatForma").Controls("TabListe").AddItem Item:=cat.CubeDefs.Item(i).Name Next i End Ifsavienojums.CloseSet savienojums = NothingSet katalogs = NothingSet cat = NothingEnd Sub

Listei „Objektu saraksts” piekārtotais VB kods uz notikumu klikšķis:Private Sub TabListe_Click()'Tiek veidots jauns ADODB savienojums Dim savienojums As New ADODB.Connection Dim katalogs As New ADOX.Catalog 'jauns ADOX katalogs Dim cat As New ADOMD.Catalog ' jauns ADOMD katalogs Dim cub As ADOMD.CubeDef Dim dmn As ADOMD.Dimension Dim hrc As ADOMD.Hierarchy Dim lvl As ADOMD.Level'Deklarē mainīgos, kas veidos savienojuma īpašības Dim PAR1, PAR2, PAR3 As String PAR1 = Forms("PamatForma").Controls("Data").Value PAR2 = Forms("PamatForma").Controls("Dir").Value PAR3 = Forms("PamatForma").Controls("Prop").Value & ""'Deklarē mainīgo, kas nosaka tabulas vai kuba vārdu Dim TabVards As String TabVards = Me.TabListe.Value savienojums.Open "Provider = " & PAR1 & "Data Source =" & PAR2 & PAR3 Set katalogs.ActiveConnection = savienojums Set cat.ActiveConnection = savienojums Dim i As Integer Dim j As Integer'Ja atribūtu listē ir kāda vērtība, tad to iztukšo If Me.Liste.ListCount > 0 Then Do Until Me.Liste.ListCount = 0 Me.Liste.RemoveItem i Loop End If If DA = True Then 'ja datu avots Access vai Excel-----------------------------------------------'Ciklā notiek tabulas atribūtu nosaukumu pievienošana atribūtu listei For j = 0 To katalogs.Tables(TabVards).Columns.Count - 1 Forms("PamatForma").Controls("Liste").AddItem katalogs.Tables(TabVards).Columns(j).Name Next j

13

Page 14: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Else '------------------------------------------------------------------------------------------Set cub = cat.CubeDefs(TabVards)'Ciklā notiek kuba atribūtu nosaukumu pievienošana atribūtu listei For Each dmn In cub.Dimensions Liste.AddItem " Dimensija: " & dmn.Name For Each hrc In dmn.Hierarchies Liste.AddItem " Hierarhija: " & hrc.Name For Each lvl In hrc.Levels Liste.AddItem " Līmenis: " & lvl.Name Liste.AddItem " (" & _ lvl.Members.Count & " locekļi) " Next lvl Next hrc Next dmn End If '---------------------------------------------------------------------------------------- savienojums.Close Set savienojums = Nothing Set katalogs = Nothing Set cat = Nothing Set cub = Nothing Set dmn = Nothing Set hrc = Nothing Set lvl = NothingEnd Sub

Vaicājumu veidošana datu avotiem

Iepriekš apskatīju datu avotu metadatni, kas ir ļoti svarīgi, lai varētu vispār izveidot vaicājumu, jo bez metadatnes, taču būtu grūti atcerēties visas tabulas, kubus un to atribūtus no galvas kādam datu avotam. Ar vaicājumu palīdzību ir iespējams izgūt tikai interesējošos datus no datu avota, kuri atspoguļosies jaunā formā. Vaicājumus veidošu jau iepriekš apskatītajiem datu avotiem: Futbola_DB.mdb, Excel.xls un Abonesana.cub.

Kad esmu pieslēdzies datu avotam Futbola_DB.mdb, tad vaicājuma paredzētajā teksta laukā rakstu sekojošu vaicājumu: Atrast tādus futbolistus, kas spēlē „Manchester United” un arī „Chelsea” (attēls 17)!

Attēls 17

Šajā attēlā var arī redzēt, ka vaicājuma apstiprināšanai ir paredzētas 2 pogas: SQL MS Access and MS Excel, kura ir paredzēta tieši MS Access un MS Excel datu avotiem un SQL OLAP Cube, kura ir paredzēta tieši OLAP Cube datu avotiem. Šādas atsevišķas 2 pogas ir paredzētas, jo OLAP Cube paredzētais vaicājums balstās uz MDX tehnoloģiju un tam rezultāts atspoguļojas citādākā veidā, par ko arī vēlāk pastāstīšu. Tāpēc arī ir nepieciešama šāda papildus poga, kura šajā gadījumā ir neaktīva (to nav iespējams nospiest), jo nav izvēlēts datu avots OLAP Cube.

Kad teksta laukā ir ievadīts vaicājums, tad nospiežot vaicājuma izpildes pogu, šajā gadījumā SQL MS Access and MS Excel, tad tiks izveidota vaicājuma rezultāta tabula

14

Page 15: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

(datu bāzē, kurā atrodas lietojums) ar nosaukumu „Atlase”, kura atspoguļosies jaunā dinamiskā formā ar tādu pašu nosaukumu „Atlase” (attēls 18).

Attēls 18

Tātad rezultātā ir iznākusi dinamiska forma, kas atspoguļo vaicājuma rezultātu. Dinamiska forma ir nepieciešama, jo vaicājuma rezultāts nekad nebūs konstants, tas ir, būs dažādi atribūtu skaiti un to nosaukumi. Tas nozīmē, ka formā atbilstoši vaicājuma rezultātam tiek izveidots noteikts daudzums teksta lauki un to nosaukumi, un līdz ar to arī mainās formas garuma izmērs. Formā ir mainīgs daudzums teksta lauki un to nosaukumi, nevis konstants. Tādēļ šāda mainīga forma ir jāizveido ar VB kodu, kas atsaucoties uz vaicājuma rezultātu izveidos speciāli paredzētu formu šim vaicājuma rezultātam.

Attēlā 18 ir arī redzams, kas es ar VB koda palīdzību esmu izveidojis šai dinamiskajai formai savas navigācijas pogas, kas ir latviešu valodā un piedevām tiek parādīts pašreizējā ieraksta numurs un kopējais ierakstu skaits, un vēl poga, kas izver šo formu. Visas šīs formas pogas uz notikumu – klikšķis – izmanto jau izveidotus makro, kur VB kodā atliek norādīt šo makro nosaukumus.. Šim pašam datu avotam izpildīšu sekojošu nākamo vaicājumu: Atlasīt tos valsts kodus, kuros ir vismaz 3 klubi (attēls 19)!

15

Page 16: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 19

Esmu padomājis arī par tādu lietu kā kļūdu apstrāde pēc pogas nospiešanas, kas izpilda vaicājumu. Piemēram, ja teksta laukā ir ievadīta nepareiza vaicājuma virkne, vai arī nav ievadīta vispār, attiecīgi parādīsies nevis rezultātu forma, bet kļūdas paziņojums, kas gan ir angļu valodā, jo tā ir iebūvētā kļūdu apstrādes sistēma, kas precīzi nosaka kļūdas iemeslu (attēls 20).

Attēls 20 – Kļūdas paziņojums

Kā redzams attēlā 20, tad vaicājuma teksta laukā nav nekas ievadīts, līdz ar to parādās angļu valodas kļūdas paziņojuma logs, kas vēsta, ka vaicājumam neder tukša virkne (tukšs teksta lauks). Nospiežot paziņojuma loga pogu „OK”, ir iespējams atkal rakstīt nākamo vaicājuma, kas, cerams, būs pareizs .

Tālāk pieslēgšos datu avotam MS Excel Book, izvēloties failu Excel.xls un izveidošu vaicājumu: Atrast informāciju par visvecāko klubu (attēls 21).

16

Page 17: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 21

Pogai „SQL MS Access and MS Excel” piekārtotais VB kods uz notikumu klikšķis:Private Sub SQL_Click()'Kļūdu apstrādes norādeOn Error GoTo HandleErr'Mainīgie, kuri saturēs informāciju par savienojumu ar avotu, kā arī pašu SQL tekstu Dim a, b, c, d As String'Piešķirtās vērtības augstāk uzskaitītajiem mainīgajiem a = Forms("PamatForma").Controls("Data").Value b = Forms("PamatForma").Controls("Dir").Value c = Forms("PamatForma").Controls("Prop").Value & " " d = Forms("PamatForma").Controls("SQL_Query").Value'Tiek deklarēti mainīgie SQL vaicājumu izpildei Dim saite As New ADODB.Connection Dim komanda As New ADODB.Command Dim rakstu_kopa As ADODB.Recordset Dim teksts_SQL As String'Mainīgajam "teksts" tiek nodotas sasaistes parametru vērtības saite.Open "Provider = " & a & "Data Source =" & b & c'Mainīgajam "teksts_SQL" tiek piešķirts ievadītais SQL vaicājuma teksts teksts_SQL = d Set komanda.ActiveConnection = saite komanda.CommandText = teksts_SQL'Tiek apstrādāta SQL rinda Set rakstu_kopa = komanda.Execute(Options:=adCmdText) 'Jauna savienojuma un kataloga objektu definēšana

17

Page 18: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Dim savienojums As New ADODB.Connection Dim katalogs As New ADOX.Catalog 'Jauna savienojuma objekta ar aktīvo datu bāzi izveidošana Set savienojums = CurrentProject.Connection Set katalogs.ActiveConnection = savienojums 'Jaunas tabulas, kolonnas un atslēgas objekta definēšana Dim tabula1 As ADOX.Table Dim kolonna1 As ADOX.Column Dim tabula2 As ADOX.Table Dim n As Integer Dim i As Integer n = 0 i = 0'Ja eksistē jau tabula "Atlase", tad tā tiek izdzēsta For Each tabula2 In katalogs.Tables If katalogs.Tables.Item(i).Name = "Atlase" Then n = 1 End If i = i + 1 Next tabula2 If n = 1 Then katalogs.Tables.Delete ("Atlase") End If 'Jaunas tabulas "Atlase" veidošana ar ADOX Set tabula1 = New ADOX.Table tabula1.Name = "Atlase" katalogs.Tables.Append tabula1 'Tabulas struktūras definēšana ar ADOX Dim ieraksts As ADODB.Field For Each ieraksts In rakstu_kopa.Fields Set kolonna1 = New ADOX.Column With kolonna1 .Name = ieraksts.Name .Type = ieraksts.Type End With katalogs.Tables("Atlase").Columns.Append kolonna1 Next 'Jaunas rakstu kopas - tabulas "Atlase" rakstu izveidošana Dim rakstu_kopa1 As New ADODB.Recordset rakstu_kopa1.Open "Atlase", savienojums, adOpenKeyset, _ adLockOptimistic 'Vaicājuma rezultātu rakstu kopas ierakstīšana tabulā "Atlase" Dim j As Integer Do Until rakstu_kopa.EOF rakstu_kopa1.AddNew j = 0 For Each ieraksts In rakstu_kopa.Fields rakstu_kopa1.Fields.Item(j) = ieraksts.Value j = j + 1 Next rakstu_kopa1.Update rakstu_kopa.MoveNext Loop'Izsauc funkciju, kas uz tabulas "Atlase" pamata izveido formuCall AtlasesForma(rakstu_kopa)Set saite = NothingSet savienojums = Nothing'Kļūdu apstrādes vietaExitHere: Exit Sub HandleErr: MsgBox "Kļūda: " & Err.Number & ": " & Err.Description, _ vbOKOnly, "SQL" Resume ExitHere ResumeEnd Sub

18

Page 19: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Funkcijas „AtlasesForma(rakstu_kopa)” VB kods:Public Sub AtlasesForma(rakstu_kopa As ADODB.Recordset)'Definē mainīgos, kas veidos formu ar nosaukumu "Atlase" Dim forma As Form Dim AtrNos, AtrVert As Control Dim AtrVertX, AtrVertY As Integer Dim AtrNosX, AtrNosY As Integer Dim i, r As Integer Dim lauks As ADODB.Field'Ja eksistē forma "Atlase", tā tiek izdzēsta For r = 0 To CurrentProject.AllForms.Count - 1 If CurrentProject.AllForms.Item(r).Name = "Atlase" Then DoCmd.DeleteObject acForm, "Atlase" Exit For End If Next r'Izveido formu, kuras datu avots ir tabula "Atlase" Set forma = CreateForm forma.RecordSource = "Atlase"'Mainīgie, kas nosaka jaunās formas elementu koordinātes i = 0: AtrNosX = 100: AtrNosY = 100: AtrVertX = 2000: AtrVertY = 100'Cikla laikā tiek izveidoti lauki jaunajai formai ar parametriem For Each lauks In rakstu_kopa.Fields Set AtrVert = CreateControl(forma.Name, acTextBox, , "", lauks.Name, AtrVertX, AtrVertY + i) Set AtrNos = CreateControl(forma.Name, acLabel, , AtrVert.Name, lauks.Name & ":", AtrNosX, AtrNosY + i) i = i + 400 Next'Formas īpašību uzstādīšana forma.RecordSelectors = False: forma.DividingLines = False: forma.AllowDeletions = False forma.AllowAdditions = False: forma.NavigationButtons = False: forma.ControlBox = False forma.Width = 4500 'Tiek nodefinētas un izveidotas 4 navigācijas un 1 aizvēršanas poga Dim FirstRec, PrevRec, NextRec, LastRec, Quit As Control Set FirstRec = CreateControl(forma.Name, acCommandButton, acDetail, , , 350, i + 500, 1100, 350) FirstRec.Name = "FirstRec" FirstRec.Caption = "<<Pirmais" FirstRec.OnClick = "FirstRec" Set PrevRec = CreateControl(forma.Name, acCommandButton, acDetail, , , 1470, i + 500, 1100, 350) PrevRec.Name = "PrevRec" PrevRec.Caption = "<Ipriekšējais" PrevRec.OnClick = "PrevRec" Set NextRec = CreateControl(forma.Name, acCommandButton, acDetail, , , 2590, i + 500, 1100, 350) NextRec.Name = "NextRec" NextRec.Caption = "Nākamais>" NextRec.OnClick = "NextRec" Set LastRec = CreateControl(forma.Name, acCommandButton, acDetail, , , 3710, i + 500, 1100, 350) LastRec.Name = "LastRec" LastRec.Caption = "Pēdējais>>" LastRec.OnClick = "LastRec" Set Quit = CreateControl(forma.Name, acCommandButton, acDetail, , , 350, i + 900, 4480, 350) Quit.Name = "Quit" Quit.Caption = "Aizvērt!" Quit.OnClick = "Quit"'Teksta lauki, kuri satur informāciju par ierakstu skaitu un numuru Dim edits As Control Set edits = CreateControl(forma.Name, acTextBox, acDetail, , , 2600, i + 200, 600, 250) edits.Name = "editboxis" Dim edits2 As Control Set edits = CreateControl(forma.Name, acTextBox, acDetail, , , 1900, i + 200, 600, 250)

19

Page 20: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

edits.Name = "editboxis2"'Saglabā izveidoto formu un aiztaisa DoCmd.Save acForm, "form1" DoCmd.Close acForm, "form1"'Pārdefinē izveidoto formu DoCmd.Rename "Atlase", acForm, "form1"'Atver formu normālā skatā DoCmd.OpenForm "Atlase", acNormal'kopējo ierakstu skaita noskaidrošana Dim rst As DAO.Recordset Dim lngCount As Long Set rst = Forms("Atlase").RecordsetClone With rst .MoveFirst .MoveLast lngCount = .RecordCount End With Forms("Atlase").editboxis = "" & lngCount 'kopējais ierakstu skaits Forms("Atlase").editboxis2.ControlSource = "=[currentrecord]" 'pašreizējais ieraksta nummursEnd Sub

Vēl atlicis pēdējais datu avots, kam pieslēgties, proti, OLAP Cube. Šeit izvēlēšos apskatīt failu Abonesana.cub. Kā jau iepriekš minēju, tad šeit jāpielieto MDX priekšraksts, lai izgūtu datus no kuba. Arī šeit līdzīgi kā SQL vaicājumā saglabājas pamata komandas Select, From un Where. Vispārīgais vaicājuma pieraksts ir sekojošs:

SELECT {locekļu izvēle} ON COLUMNS, {locekļu izvēle} ON ROWS FROM [kuba nosaukums]

WHERE (nosacījums)

Izpildīšu sekojošu vaicājumu: Noskaidrot katra žurnāla abonētāju skaitu visos piedāvātajos gados (attēls 22)!

Attēls 22

20

Page 21: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Tātad Select daļā es izvēlos uz kolonām attēlot hierarhijas līmeņa gads visas ietilpstošās vērtības, savukārt uz rindām es izvēlos attēlot hierarhijas līmeņa zurnals visas ietilpstošās vērtības. From daļā es izvēlos kubu ar nosaukumu OCWCube, kurā tad arī glabājas iepriekš minētās vērtības. Visbeidzot Where daļā es norādu funkcijas nosaukumu, kas veidos kopsavilkuma vērtības, tas ir, vērtības, kuras var nolasīt kādas rindas un kādas kolonnas krustpunktā. Šajā gadījumā izvēlos funkciju ar nosaukumu Abonetaju Skaits.

Nospiežot pogu SQL OLAP Cube, tiks atvērta jauna forma ar nosaukumu OLAP_foma, kurā atrodas formas objekts, kas sastāv no šūnām. Objektu izveides sarakstā tas atrodams ar nosaukumu :-) VideoSoft FlexArray. Tieši uz notikumu – formas ielāde – šajā šūnu objektā tiks attēlots vaicājuma rezultāts. Objekts automātiski izveido vaicājuma rezultātam nepieciešamo šūnu skaitu. Attēlā 23 tiek parādīts vaicājuma rezultāts:

Attēls 23

Šāda vaicājuma rezultātu var iegūt arī ar sekojošo pierakstu:SELECT {dim_gads.children} ON COLUMNS,

{dim_zurnals.children} ON ROWSFROM [OCWCube]

WHERE (measures.[Abonetaju Skaits])

Ar atslēgvārdu children ir iespējams apskatīt kāda locekļa (member) apakšlocekļus, piemēram, gadam 2007 apakšlocekļi būs mēneši. Tāpat ar šo atslēgvārdu ir iespējams noskaidrot kādas dimensijas apakšlīmeņa visus locekļus. Lai labāk saprastu kā šis vaicājums tad patiesībā darbojas, tad parādīšu to vizuālā formātā (attēls 24).

Attēls 24

Ar šo pašu atslēgvārdu children nodemonstrēšu vēl kādu vaicājuma piemēru. Attiecīgais vaicājums: Noskaidrot abonētāju izmaksas par žurnālu abonēšanu, apskatot Kurzemes rajonus (attēls 25)!

21

Page 22: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Attēls 25

Pastāv vēl arī tāds atslēgvārds kā WITH, kurš ļauj formēt jaunus locekļus (members), piemēram, kopsavilkuma funkcija (measure). Šim nolūkam ir attiecīga pieraksta forma:

WITH MEMBER dimensija.jaunā_locekļa_vārds AS 'izteiksme'

Parādīšu šim nolūkam paraugu ar šādu vaicājumu: Noskaidrot abonētāju kopējās izmaksas (žurnālu abonēšanas maksa + transporta izdevumi), apskatot gadu 07 (attēls 26)!

Attēls 26

Šeit formēju jaunu funkciju ar nosaukumu KopSumma, kura atradīsies zem dimensijas Measures. Šai jaunajai funkcijai piešķiru tās definējošu izteiksmi, kas dara sekojošo: sasummē funkcijas Cenu Summa (abonēšanas maksa) un Izdevumu Summa (transporta izdevumi). Tālāk vēl noformēju jaunu locekli Gads_07, kas ir kā aizvietojošs nosaukums loceklim 2007. Attiecīgi šos jaunizveidotos locekļus arī izmantoju Select un Where daļā un iegūstu attēlā 26 redzamo vaicājuma rezultātu.

Pogai „SQL OLAP Cube” piekārtotais VB kods uz notikumu klikšķis:Private Sub SQL_OLAP_Click()'Atver formu, kas saturēs OLAP kuba vaicājuma rezultātuDoCmd.OpenForm "OLAP_forma", acNormalEnd Sub

22

Page 23: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Formas „OLAP_Forma” globālā VB koda daļa:Option Compare Database

Formai „OLAP_Forma” piekārtotais VB kods uz notikumu formas ielāde:Private Sub Form_Load()'mainīgo deklarēšana, kas satur tekstu, kas atrodas formas ievades laukos Dim a, b, c, d As String a = Forms("PamatForma").Controls("Data").Value b = Forms("PamatForma").Controls("Dir").Value c = Forms("PamatForma").Controls("Prop").Value & " " d = Forms("PamatForma").Controls("SQL_Query").Value'mainīgais "cst", kas izvadīs OLAP kuba vaicājuma rezultātuDim cst As New ADOMD.Cellset Dim intI As Integer Dim intJ As Integer Dim pos As ADOMD.Position'kļūdas gadījumā notiek pāreja uz kļūdas apstrādi On Error GoTo HandleErr'tiek norādīts OLAP kuba avots un vaicājums With cst .ActiveConnection = "Provider = " & a & "Data Source =" & b & c .Source = d .Open End With'tiek sagatavoti objekta, kas satur šūnas, uzstādījumi With hfgCellset .Clear .Cols = cst.Axes(0).Positions.Count + 1 .Rows = cst.Axes(1).Positions.Count + 1 .FixedCols = 1 .FixedRows = 1 End With intI = 1'attēlo kuba kolonnas vērtības For Each pos In cst.Axes(0).Positions hfgCellset.TextMatrix(0, intI) = pos.Members(0).Caption intI = intI + 1 Next intI = 1'attēlo kuba rindas vērtības For Each pos In cst.Axes(1).Positions hfgCellset.TextMatrix(intI, 0) = pos.Members(0).Caption intI = intI + 1 Next'attēlo kuba krustpunkta lauka vērtības For intI = 0 To cst.Axes(0).Positions.Count - 1 For intJ = 0 To cst.Axes(1).Positions.Count - 1 hfgCellset.TextMatrix(intJ + 1, intI + 1) = _ cst(intI, intJ).Value & "" Next intJ Next intI cst.Close Set cst = Nothing Set pos = Nothing'kļūdas apstrādeExitHere: Exit Sub HandleErr: MsgBox "Kļūda: " & Err.Number & ": " & Err.Description, _ vbOKOnly, "Formas Ielāde" Resume ExitHere ResumeEnd Sub

23

Page 24: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Lietojuma aizvēršana

Lietojuma aizvēršanai ir paredzēta speciāla poga ar nosaukumu „IZIET”. Pēc šīs pogas nospiešanas parādās paziņojuma logs (attēls 27).

Attēls 27 – Lietojuma aizvēršana

Šeit tiek parādīts paziņojums par to, vai tiešām lietotājs vēlas aizvērt šo lietojumu. Un tikai pogas „Yes” nospiešanas gadījumā, aizvērsies šis lietojums.

Pogai „IZIET” piekārtotais VB kods uz notikumu klikšķis:Private Sub Iziet_Click()Dim choisis'Paziņojuma izsaukums pirms formas aizvēršanaschoisis = MsgBox("Tiešām vēlaties aizvērt lietojumu?", vbYesNo + vbDefaultButton2 + vbQuestion, "Lietojuma aizvēršana")'Ja tiek apstiprināts paziņojums ar pogu Yes If choisis = vbYes Then'tiek aizvērta formaDoCmd.Close acForm, "PamatForma", acSaveYes End IfEnd Sub

24

Page 25: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

VISUAL BASIC redaktors MS Access vidē

Lai atvērtu Visual Basic redaktoru un pārskatītu savu izveidoto kodu, vai arī uzsākt jaunu kodēšanu, no MS Access izvēlņu joslas ir jāizvēlas Tools/Macro/Visual Basic Editor Alt + F11 (attēls 28).

Attēls 28

Šajā attēlā zem sadaļas Project – DataBase#5 var redzēt, ka Visual Basic kods ir piesaistīts 2 formām: PamatForma (lietojums) un OLAP_Forma.

Ļoti svarīga lieta, kas jāņem vērā ir atsauces, lai nodrošinātu visu darbam nepieciešamo metožu pieejamību, jo bez tām kods var nestrādāt, kaut gan tas ir pareizi uzrakstīts. Lai atvērtu logu, kurā glabājas atsauču saraksts, tad no Visual Basic redaktora izvēlņu joslas ir jāizvēlas Tools/References (attēls 29).

Attēls 29

Kā redzams šajā attēlā, tad esmu iekļāvis ļoti daudz atsauces, kaut gan daudzas no tām ir liekas. Es vienkārši pēc atsauču nosaukumiem apmēram noteicu, kādas metodes varētu tikt izmantotas. Un tad, kad vajadzīgās atsauces ir pieslēgtas, var neuztraukties par to, ka lietojumu palaišanas brīdī radīsies kaut kādas kompilācijas kļūdas !

25

Page 26: Ievads - Web viewŠis ir pēdējais laboratorijas darbs, kas savā ziņā atspoguļo iepriekšējo laboratorijas darbu kopsavilkumu. Kā jau ierasts, arī šis darbs ir paveikts ar

Secinājumi

Pirmā lieta, ko izveidoju, bija lietojums, kas reprezentē formu, ar kuru ir iespējams pieslēgties dažādiem datu avotiem kā MS Access, MS Excel un OLAP Cube un tad izgūt metadatni, kā arī uzrakstīt kādu vaicājumu šiem datu avotiem. Pašu lietojumu, protams, bija ļoti vienkārši izdomāt un uztaisīt. Pats grūtākais šajā sakarā bija izstrādāt lietojuma funkcionēšanu, tas nozīmē, ka jāsaskaras ar programmēšanu, kura man arī sagādāja šī darba lielākās problēmas. Vispār līdz šim ar Visual Basic programmēšanas valodu nekad neesmu tā nopietni strādājis, tik cik 1. kursa priekšmetā „lietojumprogrammatūra”, kur uzrakstīju pāris makro MS Excel vidē. Līdz ar to programmēšanas lietas nācās apgūt praktiski no nulles. Es domāju, ka laika gaitā manas prasmes un šīs programmēšanas valodas izpratne uzlabosies, jo šeit galvenais ir pieredze, kuras man diemžēl pašreiz pietrūkst. Pieredzes trūkumu mēģināju kompensēt ar lekcijās iegūto informāciju, 2007. gada diska piemēru krājumu, ar ļoti teicamu krievu valodas grāmatu „ADO u ADO.Net”, kā arī ar Visual Basic redaktora palīgu „Help”. Ar visiem šiem palīdzības avotiem es ilgā ceļā nonācu pie vēlamā rezultāta, bet kā lielākais palīgs man noteikti bija grāmata „ADO u ADO.Net”, kurā tiešām var atrast visu nepieciešamo, kas vajadzīgs šī darba ietvaros, tikai tas jāprot izdarīt.

Darbā parādījās vēl viena jauna lieta, ko man nācās apgūt, proti, vaicājuma veidošana datu avotam OLAP Cube. Šī avota uzbūve ir tomēr citādāka, nekā MS Access un MS Excel datu avotiem. Šeit jau nav tabulas ar kolonnu nosaukumiem, bet gan datu noliktava, kura ir būvēta no dimensijām un to hierarhiskiem līmeņiem, tāpēc arī metadatnē parādīsies citādāka informācija. Man neizdevās realizēt tādu iespēju, lai metadatnē varētu redzēt kuba funkcijas, kas atspoguļo kopsavilkuma datus rindu un kolonnu krustpunktos, bet neesmu pārliecināts vai maz to var izdarīt, jo literatūras avoti neko par šo lietu neliecina. Lai izgūtu datus šim datu avotam, tad ir jāpielieto MDX priekšraksts, kas atšķiras no SQL vaicājuma, bet pamata komandas kā Select, From un Where nekur nepazūd. Vaicājuma sakarā es uzgāju ļoti labu interneta adresi, kurā viss ir ļoti smalki un plaši aprakstīts, kas man deva iespēju apgūt MDX tehnoloģijas vaicājumu veidošanas pamatus.

Izstrādes gaitā lietojums tika daudzkārt testēts un tika novērstas visas radušās kļūdas. Rezultātā ir iegūts lietojums ar kura palīdzību lietotājs var pieslēgties dažādiem datu avotiem kā MS Access, MS Excel un OLAP Cube, tad apskatīties to metadatni, un tad ar metadatnes palīdzību veidot vaicājumus, kuru rezultāts atspoguļosies jaunā formā.

Kopumā darbs bija gan sarežģīts, gan reizē arī ļoti interesants. Iepazinos ar ADO tehnoloģiju, pastiprināju savas nelielās zināšanas ar Visual Basic programmēšanas valodu jau nopietnāk, apguvu MDX tehnoloģijas vaicājumu veidošana pamatus, kā arī atkārtoju zināšanas par datu bāzu vadības sistēmu MS Access.

26