Mark Dixon Page 1 21 – Web applications: Writing data to Databases using ASP
Mark Dixon Page 2 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
Mark Dixon Page 3 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)
Mark Dixon Page 4 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: –Can’t use.MoveNext and.MovePrev recordset methods: record set does not persist between pages
Mark Dixon Page 5 Example: Person v1 (html) Person's Details Person's Details <% ' ASP code will go here (next slide). %> Self post
Mark Dixon Page 6 Example: Person v1 (ASP) <% Const adOpenDynamic = 3 Const cs = "…" Dim rs rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, adOpenDynamic ) If Session("curID") <> "" Then rs. Find ( "[ID] = " & Session("curID")) If Request.Form("btnPrev") <> "" Then rs. MovePrevious() ElseIf Request.Form("btnNext") <> "" Then rs. MoveNext() End If Session("curID") = rs.Fields("ID").Value Response.Write( rs.Fields("Surname").Value & " ") Response.Write( rs.Fields("Forenames").Value) rs.Close() rs = Nothing %> Button value empty unless button was pressed Use session variable to record current position in db
Mark Dixon Page 7 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
Mark Dixon Page 8 Database Permissions 1 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 2000)
Mark Dixon Page 9 Database Permissions 2 Click Security tab Click Add button
Mark Dixon Page 10 Database Permissions 3 Select Internet Guest Account IUSR_ … Click Add button Click OK button
Mark Dixon Page 11 Database Permissions 4 Select Internet Guest Account Ensure write access is on
Mark Dixon Page 12 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"
Mark Dixon Page 13 Changing Data Recordset methods –AddNew: inserts a new record and makes it current –Update: sends changes back to DB –Delete: deletes currently selected record
Mark Dixon Page 14 Example: Person v2 (html) Person's Details Person's Details <% ' ASP code will go here (next slide). %> Surname: " > PersonEdit.aspx
Mark Dixon Page 15 Example: Person v2 (ASP) <% Const cs = "…" Dim rs Dim Surname rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, 3, 3) If Session("curID") <> "" Then rs.Find("[ID] = " & Session("curID")) If Request.Form("btnPrev") <> "" Then rs.MovePrevious() ElseIf Request.Form("btnNext") <> "" Then rs.MoveNext() ElseIf Request.Form("btnSave") <> "" Then rs. Fields("Surname") = Request.Form("txtSurname") rs. Update() End If Session("curID") = rs.Fields("ID").Value Surname = rs.Fields("Surname").Value rs.Close() rs = Nothing %>
Mark Dixon Page 16 Example: Phone Book (database) Person IDSurnameForenamesPhoneNum 1DixonMark JonesSally SmithAlex
Mark Dixon Page 17 Example: Phone Book (screen)
Mark Dixon Page 18 Tutorial Exercise: Person v1 Task 1: Get the Person (v1) example from the lecture working. Task 2: Modify your code, so that all fields are displayed. 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.
Mark Dixon Page 19 Tutorial Exercise: Person v2 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.
Mark Dixon Page 20 Tutorial Example: Phone Book Task 1: Get the Phone Book example from the lecture working. Task 2: Add a button on your page that jumps to another page, which allows a new record to be added. Task 3: Modify your code, so that each line (record) has a link leading to another page that allows the data to be edited. Task 4: Modify your code, so that each line (record) has a link leading to another page that allows the record to be deleted.