如何對于ADO 添加記錄及其創(chuàng)建
并非所有的數(shù)據(jù)庫都支持零長度的字符串,ADO 添加記錄因而當(dāng)添加帶有空白字段的記錄時可能會產(chǎn)生錯誤。因此,檢查您使用的數(shù)據(jù)庫所支持的數(shù)據(jù)類型是很重要的,您可以在文本、超鏈接以及備忘字段輸入零長度的字符串 ("")。
我們希望向 Northwind 數(shù)據(jù)庫中的 Customers 表添加一條新的記錄。我們首先要創(chuàng)建一個表單,ADO 添加記錄這個表單包含了我們需要從中搜集數(shù)據(jù)的輸入域:
- <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 添加記錄當(dāng)用戶按下確認(rèn)按鈕時,這個表單就會被送往名為 "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 添加記錄對象結(jié)構(gòu)還是非常復(fù)雜的,在DataSet對象的下一層中是DataTableCollection對象、DataRelationCollection對象和ExtendedProperties對象。上文已經(jīng)說過,每一個DataSet對象是由若干個DataTable對象組成。DataTableCollection就是管理DataSet中的所有DataTable對象。表示DataSet中兩個DataTable對象之間的父/子關(guān)系是DataRelation對象。它使一個DataTable 中的行與另一個DataTable中的行相關(guān)聯(lián)。#t#
這種關(guān)聯(lián)類似于關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表之間的主鍵列和外鍵列之間的關(guān)聯(lián)。DataRelationCollection對象就是管理DataSet中所有DataTable之間的DataRelation關(guān)系的。在DataSet中DataSet、ADO 添加記錄和DataColumn都具有ExtendedProperties屬性。ExtendedProperties其實是一個屬性集(PropertyCollection),ADO 添加記錄用以存放各種自定義數(shù)據(jù),如生成數(shù)據(jù)集的SELECT語句等。