افزودن (ADO Add)
در این بخش «افزودن رکورد ADO» را می بینیم. «INSERT INTO» یعنی اضافه کردن سطر جدید. «رکورد (Record)» یک سطر داده است. مثل اضافه کردن دانش آموز جدید به دفتر کلاس.
ساخت فرم ورود اطلاعات
اول یک فرم می سازیم. کاربر اطلاعات مشتری را وارد می کند. سپس فرم به صفحه پردازش ارسال می شود.
<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>
<input type="submit" value="Add New" />
<input type="reset" value="Cancel" />
</form>
</body>
</html>
افزودن رکورد با INSERT INTO
پس از ارسال فرم، رکورد جدید درج می شود. این صفحه اتصال می سازد، کوئری را می چیند، و اجرا می کند.
<html>
<body>
<%
Dim conn
Dim sql
Dim recaffected
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, " & _
"contactname, address, city, postalcode, country) "
sql = sql & "VALUES ("
sql = sql & "'" & Request.Form("custid") & "', "
sql = sql & "'" & Request.Form("compname") & "', "
sql = sql & "'" & Request.Form("contname") & "', "
sql = sql & "'" & Request.Form("address") & "', "
sql = sql & "'" & Request.Form("city") & "', "
sql = sql & "'" & Request.Form("postcode") & "', "
sql = 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>
نکات مهم
اگر INSERT استفاده می کنی، به موارد زیر دقت کن:
- اگر کلید اصلی داری، مقدار یکتا و غیرخالی بده.
- اگر AutoNumber داری، آن ستون را در INSERT نیاور.
فیلدهای بدون داده چه می شوند؟
در پایگاه داده Access، می توان رشته خالی وارد کرد. اما فقط وقتی AllowZeroLength برابر Yes باشد. همه دیتابیس ها این را پشتیبانی نمی کنند.
گام های عملی سریع
- فرم بساز و نام فیلدها را تعیین کن.
- صفحه پردازش ایجاد کن و اتصال بده.
- INSERT INTO را با مقادیر فرم بچین.
- کوئری را اجرا کن و نتیجه را نمایش بده.
- اتصال را ببند و خطا را بررسی کن.
برای ادامه، صفحه مرتب سازی ADO و همچنین افزودن رکورد ADO را ببین.
جمع بندی سریع
- INSERT INTO رکورد جدید اضافه می کند.
- فرم، داده ورودی را فراهم می کند.
- کلید اصلی باید یکتا باشد.
- AutoNumber را در INSERT نیاور.
- همیشه اتصال را ببند.