52
Mark Dixon 1 20 – Persistent data storage: relational databases and ADO

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

Embed Size (px)

Citation preview

Mark Dixon 1

20 – Persistent data storage: relational databases and ADO

Mark Dixon 2

Questions: Session variables• Write a line of VB code to put 74 into a

session variable called score.

• Write VB code that adds 1 to a variable called g, when a session variable called i is over 25.

If Session("i") > 25 Then

g = g + 1

End If

Session("score") = 74

Mark Dixon 3

Question: Self-Contained

• Are the following routines self contained?Dim g As Double

Dim w As Double

Sub Square(ByRef res As Double, ByVal n1 As Double)

res = n1 * n1

End Sub

Function u(num As Double) As Double

Return num * (w + g)

End Function

Mark Dixon 4

Admin: SQL BookGennick J (2006) SQL Pocket Guide (2nd

edition). O'Reilly.ISBN: 0-596-52688-1

Mark Dixon 5

Session Aims & Objectives• Aims

– To introduce the fundamental ideas involved in using relational databases for persistent data storage

• Objectives,by end of this week’s sessions, you should be able to:

– create a relational database table– create a web page (ASP.Net) that displays data

from a single table in a database• using ActiveX Data Objects (ADO)

– use SQL in your programs to create more complex record-sets

Mark Dixon 6

Persistent Data Storage• So far

– programs (web-pages) 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)

Mark Dixon 7

Example: People (analysis)SPECIFICATION

• User Requirements – need to have access to people's details

• Software Requirements– Functional:

–Display list of people from a database– Non-functional

should be viewable anywhere in the world

Mark Dixon 8

Record Field

Example: People (Database)

ID Surname Forenames Phone Gender

1 Dixon Mark 01752 232556 Male

2 Smith John 01752 111111 Male

3 Jones Sally 01752 888888 Female

• Information organised into– tables (e.g. person)– fields (e.g. phone)– records (e.g. 1 Dixon Mark 01752 586225 …)

Person

Mark Dixon 9

• How many fields?

• How many records?

Questions: Music (Database)

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness Disturbed US

Track

9

3

Mark Dixon 10

DBMS• Database Management Systems (DBMS)

provide 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

Mark Dixon 11

MS Access

Mark Dixon 12

ActiveX Data Objects• ActiveX Data Objects (ADO)

– common database interface• allow you to write code for any DBMS

VB.Netcode ADO

MS Access

MS SQL Server

…DB front end

Mark Dixon 13

Using Record Sets

Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close

Connection string – identify database

Open connection

Read next record

Close connection

Read field data

Mark Dixon 14

People.aspx

Example: People (code)<%@ Page Language="VB" %><%@ Import Namespace="System.Data.OleDb" %><script runat="server"> Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub</script>

Must include database library

Mark Dixon 15

People.aspx

Example: People (r)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

Mark Dixon 16

People.aspx

Example: People (s)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

Mark Dixon 17

People.aspx

Example: People (ExecuteReader)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Mark Dixon 18

People.aspx

Example: People (s)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Mark Dixon 19

People.aspx

Example: People (Read)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Mark Dixon 20

People.aspx

Example: People (Surname)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />

Mark Dixon 21

People.aspx

Example: People (Loop)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />

Mark Dixon 22

People.aspx

Example: People (Read)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />

Mark Dixon 23

People.aspx

Example: People (Surname)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />

Mark Dixon 24

People.aspx

Example: People (Loop)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />

Mark Dixon 25

People.aspx

Example: People (Read)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />

Mark Dixon 26

People.aspx

Example: People (Surname)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />Dixon<br />Smith<br />Jones<br />

Mark Dixon 27

People.aspx

Example: People (Loop)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />Dixon<br />Smith<br />Jones<br />

Mark Dixon 28

People.aspx

Example: People (Read)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

s

ID Surname Forenames Phone gender1 Dixon Mark 01752 232556 Male2 Smith John 01752 111111 Male3 Jones Sally 01752 888888 Female

Dixon<br />Dixon<br />Smith<br />Dixon<br />Smith<br />Jones<br />

Mark Dixon 29

People.aspx

Example: People (Close)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

sDixon<br />Dixon<br />Smith<br />Dixon<br />Smith<br />Jones<br />

Mark Dixon 30

People.aspx

Example: People (Display)r

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

sDixon<br />Dixon<br />Smith<br />Dixon<br />Smith<br />Jones<br />

Mark Dixon 31

Countries.aspx

Example: Countries Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath(“Countries.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Country;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r(“Name") Loop cn.Close parData.InnerHtml = s End Sub

Need data on separate lines

html by handput br tags between data <br />

Mark Dixon 32

Countries.aspx

Example: Countries (error) Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath(“Countries.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Country;", cn) cn.Open() r = cmd.ExecuteReader() s = <br /> Do While r.Read() s = s & r(“Name") Loop cn.Close parData.InnerHtml = s End Sub

Need data on separate lines

Try putting br tag here

VB does not understand html

Mark Dixon 33

Countries.aspx

Example: Countries Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath(“Countries.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Country;", cn) cn.Open() r = cmd.ExecuteReader() s = "<br />" Do While r.Read() s = s & r(“Name") Loop cn.Close parData.InnerHtml = s End Sub

• Need double quotes around tag

• (VB sees html as literal string)

runs, but br in wrong place

Mark Dixon 34

Countries.aspx

Example: Countries Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath(“Countries.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Country;", cn) cn.Open() r = cmd.ExecuteReader() s = "<br />" Do While r.Read() s = s & r(“Name") Loop cn.Close parData.InnerHtml = s End Sub

Move br tag inside loop.

Which bit of code pulls datafrom database?

Mark Dixon 35

Countries.aspx

Example: Countries Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath(“Countries.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Country;", cn) cn.Open() r = cmd.ExecuteReader() s = "<br />" Do While r.Read() s = s & r(“Name") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub

Move br tag inside loop.after field data

View Source

Mark Dixon 36

Embedding html in VB• html must be string (inside double quotes)

• follows normal pattern for expressions:

data

operator

data data data

operator operator

s = s + "<b>" + r("Name") + "</b>"

Mark Dixon 37

Embedding html in VB (errors)

s = s + "<i>" r("Gender") + "</i>"

missing operator

s = s + rs("Height") + </i>"

missing double quote

s = s + <ul> + r("Height")

html tag must be inside double quotes

s = s + "<ul>" + r("<b>Height")

looks for field in database called <b>Height

Mark Dixon 38

Questions: HTML in VB• Are these correct (assume variables and

fields exist)?

g = g + rs("Surname<br />")

h = h + "<ol>" r("Width")

a = "<p>" + a + "</p>"

html = html + "<img src=‘face.gif’ />"

h = <table> + h + "</table>"

Mark Dixon 39

Example: People v2

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim s As String cmd = New OleDbCommand("SELECT * FROM Person;", cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() If r("Gender") = True Then s = s & r("Surname") & "<br />" End If Loop cn.Close parData.InnerHtml = s End Sub

• Display Surname of Male people:

Mark Dixon 40

Example: People v3• Display Surname of Male people:

Sub Page_Load() Dim cs As String = "Provider=Microsoft.ACE.OLEDB.12.0;" + _ "Data Source=" + Server.MapPath("People.accdb") + ";" Dim cn As New OleDbConnection(cs) Dim cmd As OleDbCommand Dim r As OleDbDataReader Dim sql As String = "SELECT * FROM Person WHERE Gender = True;" Dim s As String cmd = New OleDbCommand(sql, cn) cn.Open() r = cmd.ExecuteReader() s = "" Do While r.Read() s = s & r("Surname") & "<br />" Loop cn.Close parData.InnerHtml = s End Sub SQL statement

Mark Dixon 41

SQL: Queries• main purpose of databases:

– get information back out: searching

• Structured Query Language– dedicated to interacting with databases

• 3rd Generation Language (such as VB, C#)– code describes how to do task

• 4th Generation Language (such as SQL)– code describes what to do (not how to do it)

Mark Dixon 42

SQL: SELECT statement• SELECT statement

– used to get data– can be embedded in VB, via:

–…v = "SELECT * FROM [Person]"...cmd = New OleDbCommand(v, cn)

all fields

Mark Dixon 43

SQL: WHERE & ORDER BY• WHERE clause

– used to restrict data

SELECT * FROM [People] WHERE [age]>=18;

• ORDER BY clause– used to change order of data

SELECT * FROM [People] ORDER BY [Surname];

Mark Dixon 44

SQL: strings (text data)• Possible confusion:

SELECT * FROM Person WHERE Surname = Smith

this will look for field called Smith - gives error need single (SQL) quotes to signify literal text SELECT * FROM Person WHERE Surname = 'Smith'

Mark Dixon 45

SQL & MS access queries• MS Access

– Queries: select data from database– really SQL select statements– can use queries to test SQL code

Mark Dixon 46

Questions: SQL• Create an SQL

statement to extract Track Title of records by Aerosmith

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm

US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness

Disturbed US

Track

SELECT [Track Title] FROM Track WHERE [Artist Name] = 'Aerosmith';

Mark Dixon 47

Questions: SQL• Create an SQL

statement to extract all fields of songs by Disturbed, ordered by track name

Track Title Artist Name Country

Paranoid Black Sabbath UK

Falling in Love Aerosmith US

Pink Aerosmith US

Love in an Elevator Aerosmith US

Smooth Criminal Alien Ant Farm

US

Meaning of Life Disturbed US

The Game Disturbed US

Voices Disturbed US

Down with the Sickness

Disturbed US

Track

SELECT * FROM Track WHERE [Artist Name] = 'Disturbed' ORDER BY [Track Title];

Mark Dixon 48

Example: People v4

• User controls what is displayed:

Mark Dixon 49

SQL: DISTINCT records

SELECT [Artist Name]FROM [Track];

Artist Name

Black Sabbath

Aerosmith

Aerosmith

Aerosmith

Alien Ant Farm

Disturbed

Disturbed

Disturbed

Disturbed

Artist Name

Black Sabbath

Aerosmith

Alien Ant Farm

Disturbed

SELECT DISTINCT [Artist Name]FROM [Track];

Mark Dixon 50

Access Driver (for 32bit Office)• http://www.microsoft.com/en-gb/download/

details.aspx?id=13255

Mark Dixon 51

Access Driver (for 64bit Office)• http://www.microsoft.com/en-gb/download/

details.aspx?id=23734

Mark Dixon 52

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: Get the People v1 example (from the lecture) working.• 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 it displays the data in an html table.• Task 5: Modify your page so that records for males are displayed in blue, and

records for females are displayed in red.• Task 6: Modify your page as per version 4. You will need to:

– Add a form to the page, and three submit buttons– In your code, detect when a button has been pressed (have a look at

previous weeks)• Task 7: Modify your page so that the user can type a letter, and only names

starting with that letter are displayed.• Task 8: Modify your page so that the user can type a series of numerical digits

and only phone numbers containing those digits are displayed.• Task 9: Modify your code so that the user can order the data by surname, or

email address (You may want to use a Query String)