如何對于ADO 添加記錄及其創建
并非所有的數據庫都支持零長度的字符串,ADO 添加記錄因而當添加帶有空白字段的記錄時可能會產生錯誤。因此,檢查您使用的數據庫所支持的數據類型是很重要的,您可以在文本、超鏈接以及備忘字段輸入零長度的字符串 ("")。
我們希望向 Northwind 數據庫中的 Customers 表添加一條新的記錄。我們首先要創建一個表單,ADO 添加記錄這個表單包含了我們需要從中搜集數據的輸入域:
- <html>
- <body>
- <form method="post" action="demo_add.asp">
- <table>
- <tr>
- <td>CustomerID:</td>
- <td><input name="custid"></td>
- </tr><tr>
- <td>Company Name:</td>
- <td><input name="compname"></td>
- </tr><tr>
- <td>Contact Name:</td>
- <td><input name="contname"></td>
- </tr><tr>
- <td>Address:</td>
- <td><input name="address"></td>
- </tr><tr>
- <td>City:</td>
- <td><input name="city"></td>
- </tr><tr>
- <td>Postal Code:</td>
- <td><input name="postcode"></td>
- </tr><tr>
- <td>Country:</td>
- <td><input name="country"></td>
- </tr>
- </table>
- <br /><br />
- <input type="submit" value="Add New">
- <input type="reset" value="Cancel">
- </form>
- </body>
- </html>
ADO 添加記錄當用戶按下確認按鈕時,這個表單就會被送往名為 "demo_add.asp" 的文件。文件 "demo_add.asp" 中含有可向 Customers 表添加一條新記錄的代碼:
- <html>
- <body>
- <%
- set conn=Server.CreateObject("ADODB.Connection")
- conn.Provider="Microsoft.Jet.OLEDB.4.0"
- conn.Open "c:/webdata/northwind.mdb"
- sql="INSERT INTO customers (customerID,companyname,"
- sqlsql=sql & "contactname,address,city,postalcode,country)"
- sqlsql=sql & " VALUES "
- sqlsql=sql & "('" & Request.Form("custid") & "',"
- sqlsql=sql & "'" & Request.Form("compname") & "',"
- sqlsql=sql & "'" & Request.Form("contname") & "',"
- sqlsql=sql & "'" & Request.Form("address") & "',"
- sqlsql=sql & "'" & Request.Form("city") & "',"
- sqlsql=sql & "'" & Request.Form("postcode") & "',"
- sqlsql=sql & "'" & Request.Form("country") & "')"
- on error resume next
- conn.Execute sql,recaffected
- if err<>0 then
- Response.Write("No update permissions!")
- else
- Response.Write("<h3>" & recaffected & " record added</h3>")
- end if
- conn.close
- %>
- </body>
- </html>
在ADO 添加記錄對象結構還是非常復雜的,在DataSet對象的下一層中是DataTableCollection對象、DataRelationCollection對象和ExtendedProperties對象。上文已經說過,每一個DataSet對象是由若干個DataTable對象組成。DataTableCollection就是管理DataSet中的所有DataTable對象。表示DataSet中兩個DataTable對象之間的父/子關系是DataRelation對象。它使一個DataTable 中的行與另一個DataTable中的行相關聯。#t#
這種關聯類似于關系數據庫中數據表之間的主鍵列和外鍵列之間的關聯。DataRelationCollection對象就是管理DataSet中所有DataTable之間的DataRelation關系的。在DataSet中DataSet、ADO 添加記錄和DataColumn都具有ExtendedProperties屬性。ExtendedProperties其實是一個屬性集(PropertyCollection),ADO 添加記錄用以存放各種自定義數據,如生成數據集的SELECT語句等。