Download presentation
Presentation is loading. Please wait.
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.