إضافة سجل ADO

يمكننا استخدام أمر INSERT INTO في SQL لإضافة سجلات إلى جدول في قاعدة البيانات.

إضافة سجلات إلى جدول في قاعدة البيانات

نحن نأمل في إضافة سجل جديد إلى جدول Customers في قاعدة بيانات Northwind. يجب علينا أولاً إنشاء نموذج يتضمن مجالات الإدخال التي نحتاج إلى جمع البيانات منها:

<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="إضافة جديد"> 
<input type="reset" value="إلغاء">
</form>
</body>
</html>

عندما يضغط المستخدم على زر "إذن"، سيتم إرسال هذا النموذج إلى ملف "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,"
sql=sql & "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("لا يوجد حقوق تحديث!")
else 
  Response.Write("<h3>" & recaffected & " السجل المضافة</h3>")
end if
conn.close
%>
</body>
</html>

مهم

عندما تستخدم أمر INSERT command، تأكد من ما يلي:

  • إذا كان الجدول يحتوي على مفتاح رئيسي، تأكد من أن القيمة التي تضيفها إلى حقل المفتاح الرئيسي هي فريدة وغير فارغة (إلا فإن provider لن يضيف السجل، أو قد يحدث خطأ).
  • لا تدخل في أمر INSERT حقل يحتوي على رقم تلقائي إذا كان يحتوي الجدول على حقل يحتوي على رقم تلقائي (القيمة لهذا الحقل يتم تحديده من قبل provider).

عن الحقول بدون بيانات

في قاعدة بيانات MS Access، إذا قمت بتعيين خاصية AllowZeroLength إلى "نعم"، يمكنك إدخال الأحرف بدون طول ("") في الحقول النصية، الروابط، والخلايا التعليقية.

ملاحظة:ليس جميع قواعد البيانات تدعم الأحرف بدون طول، لذا قد يحدث خطأ عند إضافة سجلات تحتوي على حقل فارغ. لذلك، من المهم التحقق من أنواع البيانات التي تدعمها قاعدة البيانات التي تستخدمها.