Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mark Dixon Page 1 20 – Web applications: Writing data to Databases using ASP.

Similar presentations


Presentation on theme: "Mark Dixon Page 1 20 – Web applications: Writing data to Databases using ASP."— Presentation transcript:

1 Mark Dixon Page 1 20 – Web applications: Writing data to Databases using ASP

2 Mark Dixon Page 2 Questions: HTML in VB Are these correct (assume variables and fields exist)? f = f + rs.Fields("Description").value h = h + rs.Fields(" Name").value a = " " + a " " html = html + h = " " + h + " "   

3 Mark Dixon Page 3 Questions: Databases How many primary keys? How many foreign keys? 3 2

4 Mark Dixon Page 4 Session Aims & Objectives Aims –To introduce the fundamental ideas involved in using server-side code to write data to databases Objectives, by end of this week’s sessions, you should be able to: –create an ASP web page that allows the user to store data in database

5 Mark Dixon Page 5 Searching for Data Recordset methods –Find: searches for the next record to match given criteria string: e.g. "Name = 'Smith' " ( " are for VB string) ( ' are for database string)

6 Mark Dixon Page 6 Example: Person v1 (Specification) User requirement: –Display person’s details from database online, and be able to move to next and previous person (record) Problem: –record set does not persist between pages –Difficult to use.MoveNext and.MovePrev recordset methods:

7 Mark Dixon Page 7 Example: Person v1 Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim rs As Object Dim s As String Dim id As String rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, 3) id = CStr(Session("curID")) If id > "" Then rs.Find("[ID] = " + id) If Request.Form("btnPrev") > "" Then rs.MovePrevious() ElseIf Request.Form("btnNext") > "" Then rs.MoveNext() End If Session("curID") = rs.Fields("ID").Value s = rs.Fields("Surname").Value + " " parData.InnerHtml = s rs.Close() rs = Nothing End Sub Use session variable to record current position in db Find last position in db (using id from session variable)

8 Mark Dixon Page 8 Example: Person v2 (Specification) User requirement: Display person’s details from database online, and be able to move to next and previous person (record) –Change surname and save to database

9 Mark Dixon Page 9 Database Permissions 1 Windows Explorer –Tools –Folder Options –View Tab Need to turn 'simple file sharing' off (as this disables the security tab in file properties)

10 Mark Dixon Page 10 Database Permissions 2 In order for ASP to write to a database –Need to give write access to Internet Guest Account for database file (People.mdb) Right-click on file in Windows Explorer (the following screens are for Windows XP)

11 Mark Dixon Page 11 Database Permissions 3 Click Security tab Click Add button

12 Mark Dixon Page 12 Database Permissions 4 Click Advanced button

13 Mark Dixon Page 13 Select Internet Guest Account IUSR_ … Click Find button Click user Click OK button Database Permissions 5

14 Mark Dixon Page 14 Database Permissions 6 Select Internet Guest Account Ensure write access is on Repeat for ASPNET account

15 Mark Dixon Page 15 Changing Data Recordset methods –AddNew: inserts a new record and makes it current –rd.Fields("FieldName").value = "Data" –Update: sends changes back to DB –Delete: deletes currently selected record

16 Mark Dixon Page 16 Writing data to a database create recordset open recordset –dynamic cursor (3), pessimistic locking (3) to add a record –use to AddNew method rs.AddNew to delete a record –use the Delete method rs.Delete to change existing data –assign a new value to fields rs.Fields("Surname").Value = "Fred"

17 Mark Dixon Page 17 Example: Person v2 Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim rs As Object Dim id As String rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, 3, 3) id = CStr(Session("curID")) If id > "" Then rs.Find("[ID] = " + id) If Request.Form("btnPrev") > "" Then rs.MovePrevious() ElseIf Request.Form("btnNext") > "" Then rs.MoveNext() ElseIf Request.Form("btnSave") > "" Then rs.Fields("Surname").Value = txtSurname.Value rs.Update() End If Session("curID") = rs.Fields("ID").Value txtSurname.Value = rs.Fields("Surname").Value rs.Close() rs = Nothing End Sub

18 Mark Dixon Page 18 Example: Person v3

19 Mark Dixon Page 19 Tutorial Exercise: Person v1 LEARNING OBJECTIVE: use session variable to store id practice problem solving skills Task 1: Get the Person (v1) example from the lecture working. Task 2: Modify your code, so that all fields are displayed (use a table). Task 3: Modify your code, so that it does not generate an error when the user goes past the end or beginning of the recordset. Hint: You can't stop it 'falling off' the end of the recordset. But you can detect it using EOF and move back.

20 Mark Dixon Page 20 Tutorial Exercise: Person v2 & v3 Task 1: Get the Person (v2) example from the lecture working. Task 2: Modify your code, so that a line of text is displayed confirming that data has been saved. Task 3: Modify your code, so that an add button is included, which allows a new record to be added. Task 4: Modify your code, so that a delete button is included, which allows the current record to be deleted.


Download ppt "Mark Dixon Page 1 20 – Web applications: Writing data to Databases using ASP."

Similar presentations


Ads by Google