JET
Jet je pogon baza podataka, nezavistan od aplikacije, koji mogu da koriste različiti programi, kao što su Microsoft Excel, Word, Access, C++, Visual Basic ... Alat koji se koristi za komunikaciju sa Jet-om je DAO (Data Access Objects). Jet je pogon baza podataka, koji omogućava set usluga, a DAO je programerski interfejs za Jet.
Jet je jedan od sistema za upravljanje bazama podataka (DBMS). Svi Microsoft Jet objekti smeštaju se u jednu bazu podataka sa ekstenzijom .mdb.
DAO
DAO omogućava korišćenje programskih jezika za pristup i manipulaciju bazom podataka. DAO podržava dva različita okruženja, odnosno dve vrste radnih prostora (workspace):
Microsoft Jet workspace treba koristiti onda kada treba otvoriti Microsoft Jet bazu podataka (.mdb fajl) ili neku drugu desktop ISAM bazu, ili onda kada je potrebno da se iskoriste neke prednosti Microsoft Jet-a, kao što je mogućnost pridruživanja podataka iz baza različitih formata.
ODBCDirect workspace koristi se kada je jednostavno potrebno da se izvrše upiti ili uskladištene procedure nad (udaljenim) serverom baze podataka, kao što je Microsoft SQL Server, ili kada su klijentskoj aplikaciji potrebne posebne mogućnosti ODBC-a, kao što je asinhrono izvršavanje upita.
DAO objekti
Svi DAO objekti izvedeni su iz objekta DBEngine. Postoji 17 različitih DAO tipova objekata. Mogu se deklarisati nove DAO objektne promenljive za svaki od tipova objekata.
Neki od DAO objekata :
Na primer, sledeći kod kreira Database objekat, Recordset objekat dynaset tipa i objekat Field:
Dim dbPrimer As Database
Dim rstPrimer As Recordset
Dim fldPrimer As Field
Set dbPrimer = OpenDatabase("BAZA.mdb")
Set rstPrimer = dbPrimer.OpenRecordset("Tabela", _ dbOpenDynaset)
Set fldPrimer = rstPrimer.Fields("Au_ID")
DAO kolekcije
Svaki DAO tip objekta, osim DBEngine, ima odgoarajuću kolekciju. Kolekcija sadrži sve postojeće objekte odgovarajućeg tipa. Na primer Recordsets kolekcija sadrži sve otvorene Recordset objekte. Neki objekat, koji je na višoj hijerarhijskoj lestvici, poseduje svaku kolekciju. Objekat Database “poseduje” kolekciju Recordsets.Izuzev objekata Connection i Error, svaki DAO objekat ima kolekciju Properties.
Većina DAO objekata ima default kolekcije i default svojstva. Na primer, default kolekcija objekta Recordset je kolekcija Fields, a default svojstvo objekta Field je svojstvo Value.
Da bi se u Visual Basic programu koristio DAO, potrebno je postaviti referencu na odgovarajući objekat (u meniju opcija Project, zatim podopcija References, pa se u prozoru koji se pojavi odabere Microsoft DAO 3.6 Object Library). Zatim treba definisati promenljive:
Dim RadniProstor As Workspace
Dim BazaPodataka As Database
koje su predstavnci objekata koji se kreiraju iz DAO hijerarhije klasa. Zatim se mogu kreirati funkcije i podprogrami koji će koristiti ove promenljive.
Primer 12.- Program koji koristi DAO model:
Option Explicit
Dim RadniProstor As Workspace
Dim BazaPodataka As Database
Private Sub Command1_Click()
Dim ImeBaze As String
Dim RS As Recordset
Dim NovoIme As String
Dim NovaAdresa As String
On Error GoTo EH
NovoIme = Trim(InputBox("Unesite novo ime u bazu_ podataka:"))
NovaAdresa = Trim(InputBox("Unesite novu adresu_ u bazu podataka:"))
Set RadniProstor = DBEngine.Workspaces(0)
ImeBaze = App.Path & "\Baza.mdb"
Set BazaPodataka = RadniProstor.OpenDatabase(ImeBaze)
Set RS = BazaPodataka.OpenRecordset("TABELA1")
With RS
If NovoIme <> "" And NovaAdresa <> "" Then
.AddNew
!IME = NovoIme
!ADRESA = NovaAdresa
.Update
Else
MsgBox "POTREBNO JE DA UNESETE_ PODATKE O IMENU I ADRESI"
Exit Sub
End If
End With
RS.Close
Set BazaPodataka = Nothing
Set RadniProstor = Nothing
Debug.Print "UNOS USPESAN"
UzmiPodatke
Exit Sub
EH:
Set BazaPodataka = Nothing
Set RadniProstor = Nothing
Debug.Print "UNOS NIJE USPEO"
End Sub
Private Sub Form_Load()
Debug.Print UzmiPodatke
End Sub
Private Function UzmiPodatke() As String
Dim ImeBaze As String
Dim RS As Recordset
On Error GoTo EH
Set RadniProstor = DBEngine.Workspaces(0)
ImeBaze = App.Path & "\Baza.mdb"
Set BazaPodataka = RadniProstor.OpenDatabase(ImeBaze)
Set RS = BazaPodataka.OpenRecordset("TABELA1")
With RS
List1.Clear
If Not .BOF Then
.MoveFirst
End If
Do While Not .EOF
List1.AddItem RS!kljuc & " " & RS!IME &_ " " & RS!ADRESA
.MoveNext
Loop
End With
RS.Close
Set BazaPodataka = Nothing
Set RadniProstor = Nothing
UzmiPodatke = "OTVARANJE BAZE USPESNO"
Exit Function
EH:
Set BazaPodataka = Nothing
Set RadniProstor = Nothing
UzmiPodatke = "NIJE USPELO OTVARANJE BAZE"
End Function
Izgled forme za primer 12: