Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mark Dixon Page 1 17 – Persistent data storage: relational databases and ADO.

Similar presentations


Presentation on theme: "Mark Dixon Page 1 17 – Persistent data storage: relational databases and ADO."— Presentation transcript:

1 Mark Dixon Page 1 17 – Persistent data storage: relational databases and ADO

2 Mark Dixon Page 2 Session Aims & Objectives Aims –To introduce the fundamental ideas involved in persistent data storage and relational databases Objectives, by end of this week’s sessions, you should be able to: –create a relational database table –create a web page (ASP) that displays data from a single table in a database using ActiveX Data Objects (ADO)

3 Mark Dixon Page 3 Persistent Data Storage So far –all programs lose data when closed Not realistic –typically data stored to persistent storage device (e.g. hard disk, key drive, floppy disk, CD-RW) Use either –flat files –database (relational, or object oriented)

4 Mark Dixon Page 4 Example: People (Specification) User requirement: –Display list of people from database online How: –Combine our knowledge of: ASP (active server pages) ADO (activeX data objects)

5 Mark Dixon Page 5 Record Field Example: People (Database) IDSurnameForenamesPhoneemail 1DixonMark01752 232556mark.dixon@plymouth.ac.uk 2SmithJohn01752 111111john.smith@john.smith.ac.uk 3JonesSally01752 888888sally.jones@sally.jones.com 4BloggsFred01752 123123fred.bloggs@aaaaaa.com 5JohnsonGenny01752 987987genny@bbbb.cccc.com Information organised into –tables (e.g. person) –fields (e.g. phone) –records (e.g. 1 Dixon Mark 01752 232556 …) Person

6 Mark Dixon Page 6 How many fields? How many records? Example: Music (Database) Track TitleArtist NameCountry ParanoidBlack SabbathUK Falling in LoveAerosmithUS PinkAerosmithUS Love in an ElevatorAerosmithUS Smooth CriminalAlien Ant FarmUS Meaning of LifeDisturbedUS The GameDisturbedUS VoicesDisturbedUS Down with the SicknessDisturbedUS Track

7 Mark Dixon Page 7 Database Management Systems DBMS provides facilities for: –creating and changing databases add/remove records add/remove fields add/remove data –For example: Microsoft Access dBase Borland Paradox MySQL Microsoft SQL Server Oracle home/small business large scale

8 Mark Dixon Page 8 MS Access Music database

9 Mark Dixon Page 9 ActiveX Data Objects (what & why) ActiveX Data Objects (ADO) –common database interface allow you to write code for any DBMS VB or VB Script code ADO MS Access MS SQL Server … … DB front end

10 Mark Dixon Page 10 ADO Record Set Object Used to interact with tables Properties –BOF: true if at start of record set (before first record) –EOF: true if at end of record set (after last record) –Fields: used to get and set data values Methods –Open: used to open record set –MoveFirst: moves focus to first record –MovePrevious: moves focus to previous record –MoveNext: moves focus to next record –MoveLast: moves focus to last record –Close: closes record set

11 Mark Dixon Page 11 Using Record Sets <% Const cs = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Music.mdb; Persist Security Info=False" Dim rs rs = CreateObject ("ADODB.Recordset") rs. Open ("Person", cs) Do Until rs.EOF() … rs. MoveNext() Loop rs. Close() rs = Nothing %> Connection string – identify database Open record set with table Move to next record Close record set

12 Mark Dixon Page 12 Connection Strings: UDL files Generate connection strings –Right click on desktop –Select New, Text Document –Rename to *.UDL (Yes to warning message) –Double click –Select provider –Click Next –Select or enter DB name –Click Test Connection button –Click OK –Open with Notepad, cut & paste text

13 Mark Dixon Page 13 People.aspx Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs

14 Mark Dixon Page 14 People.aspx Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs

15 Mark Dixon Page 15 People.aspx Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs

16 Mark Dixon Page 16 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon People.aspx

17 Mark Dixon Page 17 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon Smith People.aspx

18 Mark Dixon Page 18 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon Smith Jones People.aspx

19 Mark Dixon Page 19 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon Smith Jones Bloggs People.aspx

20 Mark Dixon Page 20 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon Smith Jones Bloggs Anderson People.aspx

21 Mark Dixon Page 21 Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs Dixon Smith Jones Bloggs Anderson People.aspx

22 Mark Dixon Page 22 People.aspx Example: People Personal Address Book Personal Address Book <% Const cs = " Provider=…;Data Source=D:\People.mdb; " Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing %> rs

23 Mark Dixon Page 23 Example: People v2 Const cs = "Provider=…;Data Source=D:\People.mdb;" Sub DisplayPeople() Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(rs.Fields("Surname").Value) Response.Write(" ") rs.MoveNext() Loop rs.Close() rs = Nothing End Sub Personal Address Book Personal Address Book <% DisplayPeople() %> Use procedure to separate: –code detail –html

24 Mark Dixon Page 24 Tutorial Exercise: People Task 1: Create your own People database: –Open MS Access –Create a new database file –Create a new table –Create fields –Enter data Task 2: Create the People v2 asp page (as per the lecture) to display data from the database. Task 3: Modify your page so that it displays phone number as well as the person's name. Task 4: Modify your page so that the user can type a letter, and only names starting with that letter are displayed. Task 5: Modify your page so that the user can type a series of numerical digits and only phone numbers containing those digits are displayed. Task 6: Modify your page so that it displays the data in an html table. Hint: use Response.Write to insert the appropriate tags.

25 Mark Dixon Page 25 Tutorial Exercise: Music Task 1: Create your own Music Database. Task 2: Create an asp page to display data from this database. Task 3: Modify your page so that the user can type the name of an artist, and only tracks by that artist are displayed Task 4: Make your page case in-sensitive (i.e. UPPER or lower case makes no difference)


Download ppt "Mark Dixon Page 1 17 – Persistent data storage: relational databases and ADO."

Similar presentations


Ads by Google